我想从矩阵的数据元素列表中创建一个单独的数据帧。例如,我有以下矩阵元素列表: -
> 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
答案 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