1

我正在编写一个生成 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 个矩阵的最佳方法是什么?对象?由矩阵组成的数据框?

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

4

1 回答 1

3

用我的手机写信,但你可以试试这个:

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

或者,如果它们都完全正确10x10,您可以将其替换为上面的“函数(M)”

    M[(1:9)*11] 
于 2013-03-28T13:31:48.660 回答