使用3个字母生成长度为2的所有组合

时间:2016-04-26 06:00:49

标签: r

生成此类组合的最简单方法是使用combn函数,如下所示:

print(combn(letters[1:3],2))

它生成的输出是:

    [,1] [,2] [,3]
[1,] "a"  "a"  "b" 
[2,] "b"  "c"  "c" 

这不会生成像aabb这样的组合(重复相同的字符)。 如果生成ba,这甚至不会生成ab

我想为矢量[a,b,c]生成长度为2的所有组合。

在R中有一种简单的方法吗?

1 个答案:

答案 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"