R 如何在不考虑顺序的情况下生成所有可能的向量组合?

R 如何在不考虑顺序的情况下生成所有可能的向量组合?,r,R,在数据帧中,我有一列包含字符串。假设它看起来像这样: x <- unique(df[,1]) x "A" "A" "B" "B" "B" "C" 但这仍然会留下一个问题,即具有相同字符串组合的行的顺序不同。我怎样才能摆脱这个呢?我想你在找combn: x <- c("A", "A", "B", "B", "B", "C") combn(x,2) 如果在x中只需要唯一的值(如果是unique()调用的结果,我不知道为什么在x中有重复的值): 在utils包中有combn功能: t(

在数据帧中,我有一列包含字符串。假设它看起来像这样:

x <- unique(df[,1])
x
"A" "A" "B" "B" "B" "C"

但这仍然会留下一个问题,即具有相同字符串组合的行的顺序不同。我怎样才能摆脱这个呢?

我想你在找
combn

x <- c("A", "A", "B", "B", "B", "C")
combn(x,2)
如果在
x
中只需要唯一的值(如果是
unique()
调用的结果,我不知道为什么在
x
中有重复的值):


utils
包中有
combn
功能:

t(combn(LETTERS[1:3],2))
#      [,1] [,2]
# [1,] "A"  "B" 
# [2,] "A"  "C" 
# [3,] "B"  "C"

我有点困惑,为什么你的
x
有重复的值。

x
不可能是你所展示的;如果将
unique()
应用到
df[,1]
中,它们将是唯一的,不是吗?没错,我把它与打印数据框列本身的内容混为一谈了
x
当然不包含重复项。谢谢,我不知道
combn
。我接受了BenBarnes的答案,因为它给出了我想要的结果,但显然你也回答了我的问题。
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
[1,] "A"  "A"  "A"  "A"  "A"  "A"  "A"  "A"  "A"  "B"   "B"   "B"   "B"   "B"   "B"  
[2,] "A"  "B"  "B"  "B"  "C"  "B"  "B"  "B"  "C"  "B"   "B"   "C"   "B"   "C"   "C"  
> combn(unique(x),2)
     [,1] [,2] [,3]
[1,] "A"  "A"  "B" 
[2,] "B"  "C"  "C" 
t(combn(LETTERS[1:3],2))
#      [,1] [,2]
# [1,] "A"  "B" 
# [2,] "A"  "C" 
# [3,] "B"  "C"