在R中存储100个矩阵的最佳方法是什么?

时间:2013-03-28 13:25:09

标签: r matrix

我正在编写一个生成100个矩阵的函数。有了这个,我需要遍历每个矩阵上的第一个超对角线并提取值。这些值应该进入数据框 - 每个超对角线1列。让我来说明一下:

第一个矩阵(标记为X的位置应该被提取)

     [,1] [,2] [,3] [,4]
[1,]  1    X   .2   .1
[2,] .7   .8    X   .5
[3,] .6   .9   .4    X
[4,] .5   .1   .1   .2

所以我需要遍历这些矩阵中的100个,将每个矩阵的所有位置标记为X(第一个超对角线),然后我需要将每个第一个超对角线放在这样的数据框中:

输出数据框

         matrix1 matrix2 matrix3
[1,2]    .5      .2      .1
[2,3]    .5      .1      .2
[3,4]    .3      .7      .8

鉴于这种情况,存储100个矩阵的最佳方法是什么,我稍后将访问以创建输出数据帧?对象?由矩阵组成的数据框?

此外 - 除了我发布的影响我选择的数据结构之外还有其他因素吗?

1 个答案:

答案 0 :(得分:3)

从手机上写字,但你可以试试这个:

as.data.frame(lapply(matrixList, function(M) diag(M[, -1]) ))

或者,如果它们都是10x10,则可以将其替换为“上面的函数(M)”

    M[(1:9)*11]