我尝试以某种方式从列表中读出某些元素,这相当于df[, c(1,4,5)]
中的data.frame
。
> obj <- list(c(1:5), c(1:5))
> obj
[[1]]
[1] 1 2 3 4 5
[[2]]
[1] 1 2 3 4 5
我正在寻找像这样的结果
[[1]]
[1] 1 4 5
[[2]]
[1] 1 4 5
我一直在试验[]
,[[]]
和[[]][]
,但那就是按行分析评估列表。
我也一直在尝试lapply(obj, c(1,4,5))
并查看match()
。
我还没到那儿,请帮助。
THX!
答案 0 :(得分:2)
您应该使用在每个列表条目上运行的函数调用lapply:
obj <- list(c(1:5), c(1:5))
lapply(obj, function(x) x[c(1, 4, 5)])
#[[1]]
[1] 1 4 5
[[2]]
[1] 1 4 5
答案 1 :(得分:2)
EDi有一个很好的答案,但您可以通过将[
函数传递给lapply
以及其他参数来实现:
lapply(obj, '[', c(1, 4, 5))
您可以通过引用来访问R中的这个和其他“怪异”函数:
?"["