这个问题之前已经被问过,但是只涉及到没有重复元素的向量。我没有找到一个简单的解决方案来获取包含有重复元素的向量的所有组合。为了举例说明,我在下面列出了一个例子。
x <- c('red', 'blue', 'green', 'red', 'green', 'red')
向量x有3个'red'重复元素和2个'green'重复元素。所有独特组合的预期结果如下所示。
# unique combinations with one element
'red'
'blue'
'green'
# unique combination with two elements
'red', 'blue' # same as 'blue','red'
'red', 'green'
'red', 'red'
'blue', 'green'
'green', 'green'
# unique combination with three elements
'red', 'blue', 'green'
'red', 'red', 'blue'
'red', 'red', 'green'
'red', 'red', 'red' # This is valid because there are three 'red's
'green', 'green', 'red'
'green', 'green', 'blue'
# more unique combinations with four, five, and six elements
lapply(1:3, function(k) matrix(x[combn(i, k)], nrow=k))
。OP 还想要 1 和 2 的组合。然后应用unique
。 - Rui Barradas