如何获得每个组ID的平均值(或总和,计数等)?

时间:2017-07-25 21:01:16

标签: r dataframe

我有一个数据框,其中包含ID列表和其他变量,如下所示:

Student_ID       Score
6                94
2                63
6                100
7                44
6                97
2                67

我想创建另一个数据框,其中只包含Student_ID和平均分数,如下所示:

Student_ID       Avg_Score
2                65
6                97
7                44 

当然,实际数据集要大得多。

1 个答案:

答案 0 :(得分:1)

您可以使用dplyr包:

df %>% group_by(Student_ID) %>% summarise(Avg_Score = mean(Score))


# # A tibble: 3 x 2 
#   Student_ID Avg_Score 
#        <int>     <dbl> 
# 1          2        65 
# 2          6        97 
# 3          7        44

您还可以在基础R中使用aggregate

aggregate( Score ~ Student_ID, df, mean) #column name will remain as "Score"

#   Student_ID Score 
# 1          2    65 
# 2          6    97 
# 3          7    44