【问题标题】:Listing all combinations in R列出 R 中的所有组合
【发布时间】:2017-09-30 19:33:15
【问题描述】:

如果我想列出所有组合,我可以使用嵌套循环:

for (int i = 1; i <= 5; i++) {
    for (int j = i + 1; j <= 5; j++) {
        System.out.println("Comparing " + i + " and " + j);
    }
}

如何在 R 中实现相同的功能?我认为我没有正确理解 R 中循环的语法,因为这不起作用(j 一直在 5 以上递增)。

for (i in 1:5) {
   for (j in i+1:5) {
   ...
   }
}

【问题讨论】:

标签: r nested-loops


【解决方案1】:

如果您想做除打印之外的任何事情,这可能会很有用:

X <- expand.grid(i = 1:5,
                 j = 1:5)

X <- X[X$i <= X$j, ]

【讨论】:

    【解决方案2】:

    问题在于操作的顺序,+ 运算符在 : 运算符之前进行评估。试试这个。


    for (i in 1:5) {
      for (j in i+(1:5)) {
        cat(paste0("i:", i, "; j: ", j, "\n"))
      }
    }
    #> i:1; j: 2
    #> i:1; j: 3
    #> i:1; j: 4
    #> i:1; j: 5
    #> i:1; j: 6
    #> i:2; j: 3
    #> i:2; j: 4
    #> i:2; j: 5
    #> i:2; j: 6
    #> i:2; j: 7
    #> i:3; j: 4
    #> i:3; j: 5
    #> i:3; j: 6
    #> i:3; j: 7
    #> i:3; j: 8
    #> i:4; j: 5
    #> i:4; j: 6
    #> i:4; j: 7
    #> i:4; j: 8
    #> i:4; j: 9
    #> i:5; j: 6
    #> i:5; j: 7
    #> i:5; j: 8
    #> i:5; j: 9
    #> i:5; j: 10
    

    【讨论】:

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