获取某一列中一定大小的所有组合的平均值

Get the average of all combinations of a certain size in a column

我有一个具有以下值的数据框:

data= structure(list(rating = c(5L, 1L, 7L, 6L, 2L, 2L)), row.names = c(NA, 
-6L), class = "data.frame")

我有 20 个不同的选项,可以从评分列中选择 3 个值(3 个选择 6)。我想创建一个向量,它将给我所有可能组合的平均值(总共 20 个平均值)。

我想不出用 R 来做这个的方法。如果你有想法就太好了。

谢谢!

我们可以使用 combn 来获得选择 3 个值的组合,并在结果 matrix

上使用 colMeans
colMeans(combn(data$rating, 3))
#[1] 4.333333 4.000000 2.666667 2.666667 6.000000 4.666667 4.666667 4.333333 4.333333 3.000000 4.666667 3.333333 3.333333 3.000000 3.000000
#[16] 1.666667 5.000000 5.000000 3.666667 3.333333

或利用FUN

combn(data$rating, 3, FUN = mean)