作者a78998042a (Benjimine)
看板R_Language
标题[问题] R的向量运算
时间Mon Mar 21 15:50:58 2016
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
使用者(已经有用R 做过不少作品)
[问题叙述]:
我需要将程式向量化
使用回圈、apply系列的函数太慢了
但不用apply又做不出来
想询问大家的经验
[程式范例]:
###vactor的问题
#我想将一个向量分别加上一个数字
x = 1:3
y = rep(0, 3)
#我想得到类似下面结果,但不用apply, 不用回圈的做法
sapply(x, function(x) y + x, simplify = FALSE)
[[1]]
[1] 1 1 1
[[2]]
[1] 2 2 2
[[3]]
[1] 3 3 3
###array的问题
#我想将array不同维度的物件,扣除不同数字
temp.ar = array(matrix(0, 2, 3), c(2, 3, 2))
#我想得到类似下面的结果
sapply(1:2, function(x)temp.ar[,,x] + x,simplify = FALSE)
[[1]]
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
[[2]]
[,1] [,2] [,3]
[1,] 2 2 2
[2,] 2 2 2
#另一个问题是,sapply会将物件转成list,增加後续处理上的难度
#例如我无法直接对list取round
#使用sapply的simplify又会将破坏结构,之後可能需要再重新架构
#但如果结构是array就可以直接做一些函数运算
#不知道大家有这方面的经验可以分享吗
#谢谢!
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.52.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1458546680.A.CC4.html