当我运行这段代码
x <- c(2, 2, 10, 8)
combn(x, 2, sum)
我明白了
> combn(x, 2, sum)
[1] 4 12 10 12 10 18
如何获取任何组合的 x 索引?对于这个问题,4 是 2 + 2 的总和,即 x[1] + x[2]。我需要 x 的索引 [1] 和 [2]。
此代码将在第一行中为您提供组合的第一个元素,在第二行中为您提供第二个元素,在最后一行中您将获得总和:
combn(x, 2, function(x) c(x, sum(x)))
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 2 2 2 2 10
[2,] 2 10 8 10 8 8
[3,] 4 12 10 12 10 18
如果您希望输出为data.frame
:
t(combn(x, 2, function(x) c(x, sum(x))))-> l
dimnames(l)[[2]] <- c(paste0("X",1:2), "Sum")
as.data.frame(l)
X1 X2 Sum
1 2 2 4
2 2 10 12
3 2 8 10
4 2 10 12
5 2 8 10
6 10 8 18