【问题标题】:Build a large list of possible combinations of a vector [duplicate]建立一个向量的可能组合的大列表[重复]
【发布时间】:2023-03-05 18:40:01
【问题描述】:

我正在尝试从以下内容构建列表/向量/...:

elements <- c("a","b","c")

这给了我elements 的每个条目与elements 的所有其他条目的组合。这些组合应该从length 1length(elements)。因此,结果应该(如果我没有错过任何组合)如下所示:

combinationsvector <- c("a","b","c", "ab", "ac", "bc", "abc")

或:

combinationslist <- list("a","b","c", "ab", "ac", "bc", "abc")

我不想区分"ab""ba",这对我来说是一回事。这应该导致{2^K}-1 组合(我不需要空条目,但它也不会受到伤害)。这是一个模型平均练习,我正在尝试获取我的数据集的所有可能的变量组合。实际上,elements 大于 3。

【问题讨论】:

  • 它非常接近,如果我发现另一个问题,我就不会问了。不过,由于您指出的原因,我会留下它(直到我们找到可能存在的真正副本)。谢谢!

标签: r


【解决方案1】:

使用combn 生成这些组合。 combn 允许您传递一个匿名函数,该函数可用于paste 组合在一起。

unlist(lapply(sequence(length(elements)), function(i)
    combn(elements, i, function(x) paste(x, collapse = ""))))
#[1] "a"   "b"   "c"   "ab"  "ac"  "bc"  "abc"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多