从R中列表中的矩阵中提取行

从R中列表中的矩阵中提取行,r,list,matrix,extract,rows,R,List,Matrix,Extract,Rows,我试图从R中列表中的所有矩阵中提取行。除了循环之外,还有其他简单的方法吗?例如 set.seed(123) list1 <- list(replicate(4,rnorm(2))) rep(list1,3) 现在我想提取这个列表中所有矩阵的第二行,并将其存储在另一个矩阵或列表中。有没有办法做到这一点而不循环 谢谢还是像这样 set.seed(123) list1 <- list(replicate(4,rnorm(2))) l<-rep(list1,3) lapply(l,f

我试图从R中列表中的所有矩阵中提取行。除了循环之外,还有其他简单的方法吗?例如

set.seed(123)
list1 <- list(replicate(4,rnorm(2)))
rep(list1,3)
现在我想提取这个列表中所有矩阵的第二行,并将其存储在另一个矩阵或列表中。有没有办法做到这一点而不循环

谢谢

还是像这样

set.seed(123)
list1 <- list(replicate(4,rnorm(2)))
l<-rep(list1,3)
lapply(l,function(x) x[2,])
set.seed(123)

列表1这将使用
lappy
提取行,并将它们与
rbind
放在一起

x = rep(list1,3)
do.call( rbind, lapply(x,'[',2,) )
plyr
包是另一个选项

library(plyr)
laply(x,function(y) y[2,])
?“[”
帮助页面很有启发性。读完后,我意识到下面非常简短的代码也很有用

laply(x,'[',2,TRUE)

使用lappy检索一个列表。采用相同的想法:
t(sappy(l,函数(x)x[2,])
检索一个矩阵,只是稍微修改一下语法:
t(sappy(l,[',2,TRUE))
library(plyr)
laply(x,function(y) y[2,])
laply(x,'[',2,TRUE)