【问题标题】:Generate all combinations, of all lengths, in R, from a vector [duplicate]从向量生成所有长度的R中的所有组合[重复]
【发布时间】:2016-10-14 17:56:05
【问题描述】:

假设我有向量["a","b","c"],那么我想创建一个包含所有唯一组合、所有大小(顺序无关紧要)的向量列表:

["a"]
["b"]
["c"]
["a","b"]
["a","c"]
["b","c"]
["a","b","c"]

如何在 R 中做到这一点?

【问题讨论】:

  • 还没有回答。链接的问题不返回列表列表。
  • 只要去掉 do.call(c, ...) 包装器,它就会是一个列表列表。

标签: r combinations


【解决方案1】:

我们可以试试combn

do.call("c", lapply(seq_along(v1), function(i) combn(v1, i, FUN = list)))

数据

v1 <- letters[1:3]

【讨论】:

  • 这不会返回数组数组。
  • @CodeGuy 你展示的是另一种语言的结构。在 R 中,向量结构与您展示的不同。此外,在R 中,数组可以是矩阵(二维)或更高维(长度相等)。但是,list 可以容纳不同长度的向量。这就是我将向量放在list 中的原因
  • 我们找到了 Java 程序员 ;-),您是否需要按照您在问题中概述的方式,如果需要,只需执行此操作 lapply(seq_along(v1), function(i) combn(v1, i , FUN = 列表))
  • 虽然我可能会添加@akrun 答案是更好的数据结构。
猜你喜欢
  • 1970-01-01
  • 2012-02-12
  • 2023-03-21
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多