从没有元素名称的元素列表创建数据框

时间:2016-02-05 11:11:35

标签: r list matrix

我想从矩阵的数据元素列表中创建一个单独的数据帧。例如,我有以下矩阵元素列表: -

> A[[1]]
$`up`
,, T+1
     [,1] [,2] [,3]
[1,]    2    4    3
[2,]    1    5    7

$`down`
,, T+1
     [,1] [,2] [,3]
[1,]    3    2    1
[2,]    2    4    2

$`right`
,,T+1
     [,1] [,2] [,3]
[1,]    5    6    7
[2,]    9    2    3

假设我想创建一个单独的数据元素列表。我不希望元素名称'$'up'/ $'down'/ $'right'出现在我的输出中。使用当前代码,每次我想调用第一个矩阵时,我都必须将代码编写为

A[[1]]$'up'[,,1] or A[[1]]$'down'[,,1] or A[[1]]$'right'[,,1]

是否可以创建一个单独的列表,以便每当我想调用它时,没有元素名称就会更简单。例如,我只想调用A [[1]],每当我想调用第一个矩阵,A [[2]]代表第二个矩阵,依此类推。它看起来像这样: -

> A[[1]]
     [,1] [,2] [,3]
[1,]    2    4    3
[2,]    1    5    7

> A[[2]]
     [,1] [,2] [,3]
[1,]    3    2    1
[2,]    2    4    2

> A[[3]]
     [,1] [,2] [,3]
[1,]    5    6    7
[2,]    9    2    3

1 个答案:

答案 0 :(得分:1)

根据您对A的定义,您已经可以通过A[[i]]访问第i个矩阵,例如:

> A[[1]]
     [,1] [,2] [,3]
[1,]    2    4    3
[2,]    1    5    7

或者,您可以创建一个三维数组,其中第三个维度表示矩阵的编号:

B <- array(do.call("cbind", A), c(2,3,4))

现在你可以通过B[,,i]访问第i个矩阵(&#34;立方体&#34;的第i个z片段),例如:

> B[,,2]
     [,1] [,2] [,3]
[1,]    3    2    1
[2,]    2    4    2