假设我有两个列表:
list.a <- as.list(c("a", "b", "c"))
list.b <- as.list(c("d", "e", "f"))
我想递归地组合这些列表,这样结果将是作为向量的组合元素列表,如下所示:
[[1]]
[1] a d
[[2]]
[1] a e
[[3]]
[1] a f
[[4]]
[1] b d
等等。我觉得我在这里缺少一些相对简单的东西。有什么帮助吗?
Cheers.
expand.grid(list.a, list.b)
为您提供所需的结果data.frame
。这往往是在 R 中处理数据的最有用的格式。但是,您可以通过调用获得所需的确切结构(保存顺序)apply
and lapply
:
result.df <- expand.grid(list.a, list.b)
result.list <- lapply(apply(result.df, 1, identity), unlist)
如果您希望此列表按第一个元素排序:
result.list <- result.list[order(sapply(result.list, head, 1))]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)