生成此类组合的最简单方法是使用combn
函数,如下所示:
print(combn(letters[1:3],2))
它生成的输出是:
[,1] [,2] [,3]
[1,] "a" "a" "b"
[2,] "b" "c" "c"
这不会生成像aa
,bb
这样的组合(重复相同的字符)。
如果生成ba
,这甚至不会生成ab
。
我想为矢量[a,b,c]生成长度为2的所有组合。
在R中有一种简单的方法吗?
答案 0 :(得分:2)
paste0
函数是矢量化的,因此使用outer:
outer(c('a','b','c'), c('a','b','c'), paste0)
[,1] [,2] [,3]
[1,] "aa" "ab" "ac"
[2,] "ba" "bb" "bc"
[3,] "ca" "cb" "cc"