【问题标题】:How can I get a vector of combinations in R?如何在 R 中获得组合向量?
【发布时间】:2021-03-17 16:10:51
【问题描述】:

我的数据集看起来像这样(在真实数据集中,它们就像 12 个观察值)

ID    String
1      BDH
2      BDHV
3      PA
4      PmA

我想要所有组合,但考虑到 1,2 = 2,1

所以所需的数据集如下所示:

ID   String
1      BDH
2      BDHV
3      PA
4      PmA
12     BDH;BDHV
123    BDH;BDHV;PA
1234   BDH;BDHV;PA;PmA
23     BDHV;PA
234    BDHV;PA;PmA
34     PA;PmA

如何使用 R 来做到这一点?

我想我必须使用 paste(, sep=";") 作为 String 变量,但仍然不知道如何进行组合。

【问题讨论】:

标签: r database dplyr combinations


【解决方案1】:

我们可以使用combn

out <- do.call(rbind, lapply(df1$ID, function(i) 
 data.frame(ID = combn(df1$ID, i, function(x) paste(x, collapse="")), 
  String = combn(df1$String, i, function(x) paste(x, collapse=";")))))

-输出

out
#     ID          String
#1     1             BDH
#2     2            BDHV
#3     3              PA
#4     4             PmA
#5    12        BDH;BDHV
#6    13          BDH;PA
#7    14         BDH;PmA
#8    23         BDHV;PA
#9    24        BDHV;PmA
#10   34          PA;PmA
#11  123     BDH;BDHV;PA
#12  124    BDH;BDHV;PmA
#13  134      BDH;PA;PmA
#14  234     BDHV;PA;PmA
#15 1234 BDH;BDHV;PA;PmA

【讨论】:

    猜你喜欢
    • 2011-12-15
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    相关资源
    最近更新 更多