我有一个简单的data.frame,如下所示:
Group Person Score_1 Score_2 Score_3
1 1 90 80 79
1 2 74 83 28
1 3 74 94 89
2 1 33 9 8
2 2 94 32 78
2 3 50 90 87
我首先需要找到Score_1的平均值,在群组内的人群中崩溃(即,第1组的Score_1意思,第2组的Score_1意思等),然后我需要在所有组中崩溃到找到Score_1的平均值 . 如何计算这些值并将它们存储为单个对象?我在dplyr中使用了“summarize”函数,代码如下:
summarise(group_by(data,Group),mean(bias,na.rm=TRUE))
我想最终创建一个第6列,给出每个组的人员重复的平均值,然后是第7列,给出所有组的平均值 .
我确信还有其他方法可以做到这一点,我愿意接受建议(虽然我仍然想知道如何在dplyr中做到这一点) . 谢谢!
3 回答
data.table
适合这样的任务:@akrun你只是吹了我的脑海!
只是为了澄清你说的话,这是我的解释:
要创建列,我们使用
mutate
而不是summarise
. 我们获得了平均值(MeanScore1
),然后按'Group'分组,按组('MeanScorebyGroup')获取mean
,最后使用select
对列进行排序但是,这也可以使用
base R
以简单的方式完成