获取某一列中一定大小的所有组合的平均值
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)
我有一个具有以下值的数据框:
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)