对来自向量的2个或更多元素的所有可能组合求和

时间:2017-10-19 18:53:19

标签: r

假设我有一个向量[50, 55, 57, 58, 60]

我试图找到3个元素的所有可能组合的总和

示例:

50+55+57 |
50+57+58 |
55+57+58
...

等等

2 个答案:

答案 0 :(得分:1)

我们使用combn获取组合,并使用FUN参数获取sum

combn(vec, 3, FUN = sum)

或使用colSums输出中的matrix

colSums(combn(vec, 3))

数据

vec <- c(50, 55, 57, 58, 60)

答案 1 :(得分:1)

基于@akrun,您可以将此行添加到解决方案中,以获得产生最大总和的关联组合。

combn(vec, 3)[, which.max(colSums(combn(vec ,3)))]