【发布时间】:2015-06-25 19:39:39
【问题描述】:
上下文:我有一个名为teamNames 的运动队列表,我想生成他们每周的比赛。我不确定排列是否是正确的方法,但我觉得它们会是。我最理想的是将团队名称向量传递给一个函数,然后让它给我一个矩阵,其中每一行的团队名称向量以不同的顺序排列,这样如果我成对遍历它们,我'将为每一行获得一组独特的比赛。
例如,如果我的输入是teamNames <- c("a", "b", "c", "d"),我希望输出是一个矩阵,上面写着:
a b c d
a c b d
a d c b
编辑:进一步澄清:在这种情况下,矩阵给了我三“周”的比赛时间。第一周:“a”与“b”和“c”与“d” 第二周:“a”与“c”和“b”与“d” 第三周:“a”对“d”和“b”对“c”
我从阅读其他问题中得到的最接近的是使用 gtools 包中的 permutations 函数,如下所示:
permutations(length(teamNames), 2, teamNames)
这会生成所有可能的匹配,但它不会将它们分成组/周。 combinations(length(teamNames), 4, teamNames 只给了我一组对局。
【问题讨论】:
-
如果您希望所有配对都是唯一的,这可能会很棘手。听起来像social golfer problem
标签: r combinations permutation random-sample