从向量生成 R 中所有长度的所有组合

Cod*_*Guy 1 combinations r

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

["a"]
["b"]
["c"]
["a","b"]
["a","c"]
["b","c"]
["a","b","c"]
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 R 中做到这一点?

akr*_*run 12

我们可以尝试 combn

do.call("c", lapply(seq_along(v1), function(i) combn(v1, i, FUN = list)))
Run Code Online (Sandbox Code Playgroud)

数据

v1 <- letters[1:3]
Run Code Online (Sandbox Code Playgroud)

  • 虽然我可能会添加@akrun 答案是更好的数据结构。 (3认同)
  • @CodeGuy 您展示的是另一种语言的结构。在 R 中,向量结构不像你展示的那样。此外,在“R”中,数组可以是矩阵(二维)或更高维度(长度相等)。但是,`list` 可以容纳不同长度的向量。这就是我将向量放在“列表”中的原因 (2认同)