【发布时间】:2015-05-28 03:26:08
【问题描述】:
有没有办法将向量应用于 R 中的 [[]]
例如b 是一个列表
b <- list(16,'dsdfs',35)
a <- c(1:3), b[[a]]
它不起作用,我知道 [[]] 和 $ 只接受单个值,[] 接受向量,但是 b[a] 是列表的列表,这不是我想要的。
有没有办法解决这个问题,因为真的很烦,我不敢用lapply。只是因为它返回列表列表的列表,除了使用 [[]] 或 $ 我没有其他方法可以进入原子元素。但是 [[]] 和 $ 不好做循环。
像 python 一样,你总是可以用 [] 走得更远,例如列表[3][2][3]...
R 有同样的东西吗?
谢谢。
【问题讨论】:
-
也许
unlist(b[a])是你想要的? -
想要的结果是什么?
-
我怀疑用分号替换
a <- c(1:3), b[[a]]中的逗号并使用“[”而不是“[”可以解决所有问题。它将提供一份清单。 -
请阅读“[”和“[[”的帮助页面,其中明确强调“[[”只能接受导致单个值的参数。如果被访问的结构允许,它可以接受一个包含多个元素的参数。
-
@JasonAizkalns 谢谢你的建议,实际情况我是不能用的,因为unlist会把所有的list都unlist,包括list里面的list,其实我就是想unlist最外面的列表,并保留所有内部列表。
标签: r list lapply data-retrieval