存储没有列表的多个输出向量

时间:2014-10-23 13:26:58

标签: r list matrix

我有一个N * 200值的矩阵

对于每一行,我使用

计算5个acf值
for(i in 1:N){
    xx[[i]] <- acf(x[i,], plot=F)$acf[1:5]
}

我想知道除了使用列表之外还有xx [i]的替代方案吗?即 是否可以使用包含每个acf值的N * 5矩阵?

我知道我可以获得列表,然后点亮它,但有更快的方法吗?

1 个答案:

答案 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