我的数据类似于以下
nums r a
1 3 210 0
4 6 3891 1
9 8 891 1
1 3 321 1
8 1 32 0
etc etc etc
我想计算一些东西,并想知道是否有人可以帮助提供以下代码
a
值的平均nums
值(例如,上面,a
的平均1 3
为0.5
),按最高平均值排序a
值。tapply
我想a
会解决这个问题,但我不知道如何处理排序组件。nums
值的平均nums
值,按预定的tapply(df$ac, df$nums, mean, orderBy=c("1 3", "4 6", "8 1", etc.))
顺序排序。例如,nums
之类的东西。您可以假设我的订单涵盖了每个可能的{{1}}值。答案 0 :(得分:1)
使用tapply
:
agg <- with(data, tapply(a, nums, FUN = mean))
然后为1,执行:
sort(agg, decreasing = TRUE)
对于2,请执行:
agg[predetermined.nums]
您还可以使用aggregate
:
agg <- aggregate(a ~ nums, data, FUN = mean)
然后为1,执行:
agg[order(agg$a, decreasing = TRUE), ]
对于2,请执行:
agg[match(predetermined.nums, agg$nums), ]