如何使用类似于矩阵索引的东西在R中对列表进行子集化?

时间:2015-02-26 06:01:10

标签: r list indexing

当我想要所有行以及矩阵或数据帧的特定列时,我们使用df[ ,"column x"]。有没有什么能够快速提取列表中每个数据帧的第i个元素?

例如,获取以下列表中每个矩阵的第2行

example <- list(matrix(1:9,3,3) , matrix(11:19,3,3), matrix(21:29,3,3))

我想知道example[[:]][2,]之类的东西是否存在 请不要提出带有循环或s(l)适用的解决方案 谢谢,

2 个答案:

答案 0 :(得分:0)

怎么样

lapply(example, function(x) x[2,])

我知道你明确要求没有人给你正确答案,但我无法帮助你。这是你在R。

中的表现

也许我发现了一个漏洞,你没有说我无法使用Map()

Map(function(x) x[2,], example)

答案 1 :(得分:0)

一般情况下,如果没有任何类型的*apply,您就无法执行此操作(建议的Mapmapply的别名)。对于您的特定示例,您可以rbind将所有矩阵放在一起,而不是通过以下每个矩阵的第二行:

do.call(rbind,example)[seq(2,by=3,length.out=length(example)),]

当然,只有当您的列表中的矩阵可以rbind组合在一起时,上述内容才有效。