我有一个N * 200值的矩阵
对于每一行,我使用
计算5个acf值for(i in 1:N){
xx[[i]] <- acf(x[i,], plot=F)$acf[1:5]
}
我想知道除了使用列表之外还有xx [i]的替代方案吗?即 是否可以使用包含每个acf值的N * 5矩阵?
我知道我可以获得列表,然后点亮它,但有更快的方法吗?
答案 0 :(得分:1)
使用apply
代码更清晰:
iN = 1000
mX = matrix(rnorm(iN*200), iN, 200)
mACF = t(apply(mX, MARGIN = 1,
FUN = function(vX) acf(vX, plot = FALSE, lag.max = 4)$acf))
输出:
> head(mACF)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 -0.01301076 -0.02077288 -0.09442797 -0.010610654
[2,] 1 -0.03060448 -0.06019641 -0.04674656 -0.086555364
[3,] 1 0.09513999 -0.05021542 -0.02757927 -0.002984605
[4,] 1 -0.08135746 0.11003419 -0.06550000 0.033755892
[5,] 1 0.09014033 0.09981602 0.11100782 0.057275603
[6,] 1 -0.08462636 -0.10192390 0.05601853 -0.019114467