我创建了一个矩阵列表,我希望能够对其应用操作,我要做的一件事就是使用诸如cbin和rbind之类的运算符将它们组合在一起,一种方法是下一种,但是我只是想将矩阵保存在列表中并应用操作而无需编写所有人。
'Combinedmatrix<-cbind(elementlist[[1]],...,elementlist[[n]])'
有没有一种方法可以代替写入列表的每个元素? 我尝试了下一个
'(i in 1:length(list)){combinedmatrix<-cbind(list[[i]])}'
在这种情况下,它只接受最后一个元素,并且不再做其他任何事情, 我尝试的另一种方法是:
'i<-1:length(list)'
'combinedmatrix<-cbind(list[[i]])}'
在这种情况下出现
'Error in list[[i]] : recursive indexing failed at level 2'
答案 0 :(得分:0)
您可以使用reduce()
包中的purrr
。假设mlist
是您的矩阵列表:
library(purrr)
reduce(mlist,rbind)
带有示例数据:
> mlist <- list(matrix(1:9,nrow=3),matrix(1:9,nrow=3),matrix(1:9,nrow=3))
> mlist
[[1]]
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[[2]]
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[[3]]
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> reduce(mlist,rbind)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[4,] 1 4 7
[5,] 2 5 8
[6,] 3 6 9
[7,] 1 4 7
[8,] 2 5 8
[9,] 3 6 9