我有一个跨国数据结构的数据框,看起来类似于下面的内容:
ID RANK GRADE
123 E1 0
123 E1 42
123 E1 NA
123 E2 41
123 E2 42
456 E2 41
456 E2 41
456 E3 NA
我想根据ID计算每个Rank的Grade列的平均值,忽略值为0,因为它们是数据输入错误,并忽略NA。
例如:对于ID 123,我想要等级为E1时的等级平均值,然后是E2等等。
答案 0 :(得分:0)
您可以使用group_by
包中的summarize
和dplyr
:
library(dplyr)
df %>%
filter(!is.na(GRADE),
GRADE != 0) %>%
group_by(ID, RANK) %>%
summarize(mean_grade = mean(GRADE))
过滤功能是删除GRADE
为NA
或0