0

当我运行这段代码

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]。

4

1 回答 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
于 2020-10-28T16:07:00.637 回答