R:从列中选择3个不同代码的每个组合

时间:2016-05-12 15:05:44

标签: r data-manipulation

我在数据框中有一列我用于编码。我想选择其中三个代码,但它们必须彼此不同,直到所有组合都用完为止。这是我的#34; Code"柱

Code
AA
AA
AA
BA
BA
BA
BA
CA
CA
CA
CA
AB
AB
AB

例如,我想要

的群组
1 "AA" "BA" "CA"
2 "AA" "BA" "AB"
3 "BA" "CA" "AB"

但不是

1 "AA" "AA" "CA"
2 "AA" "BA" "BA"
3 "CA" "CA" "AB"

我已经尝试过编写一个随机选择的for循环,但它会被挂起,因为它只是完全随机的。因此,它将两次选择相同的代码。

非常感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:7)

假设您的数据框名为codeDf,您可以执行以下操作:

t(combn(unique(codeDf$Code), 3))
     [,1] [,2] [,3]
[1,] AA   BA   CA  
[2,] AA   BA   AB  
[3,] AA   CA   AB  
[4,] BA   CA   AB