【问题标题】:Build matrix with combinations of pairs between 2 groups in R用R中2组之间的对组合构建矩阵
【发布时间】:2018-11-27 10:53:13
【问题描述】:

我有两组点:一组包含 8 个起点,另一组包含 8 个终点。我的目标是建立一个包含所有两对(start1,end1)和(start2,end2)的矩阵。 有 8 个起点的第一组是(pt1, ... pt8),终点组是(pt9, ... pt16)。 我想用两组之间的所有点对来构建矩阵,如下所示:

[pt1 pt9 pt2 pt10
 pt3 pt11 pt4 pt12
 pt5 pt13 pt6 pt14
 ...
#and then crossed pairs
 pt1 pt10 pt2 pt9
 etc... ]

第一列和第三列包含 2 对的起点,第二列和第四列包含关联的终点。我尝试了循环排列,但没有得到所有组合。

【问题讨论】:

    标签: r matrix combinations


    【解决方案1】:

    您可以使用expand.grid 创建所有可能的对,然后再次使用expand.grid 生成所有对的排列,如下所示:

    s <- 1:8
    e <- 9:16
    pairCombi <- expand.grid(s,e)
    ix <- expand.grid(seq_len(nrow(pairCombi)), seq_len(nrow(pairCombi)))
    ans <- as.data.frame(t(apply(ix[ix$Var1 != ix$Var2, ], 1L, function(n) {
        c(unlist(pairCombi[n[1L],]), unlist(pairCombi[n[2L],]))
    })))
    colnames(ans) <- paste0("Var", seq_len(ncol(ans)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多