通过均值分组来替换缺失值

时间:2019-03-25 12:15:13

标签: r mean

我有一张表格,其中包含国家/地区和国内生产总值以及缺失值。我要替换为均值,而不是整个列均值,而只包括同一组 我有27个国家11年。喜欢

countries year GDP
1         2001   125
1         2002    ...
1         2003   525
2         2001   222 
2         2002  ...

所以我想获得第一年的平均值,并用GDP的缺失值代替

我知道如何替换整个列

data$gdp[which(is.na(data$gdp))]<- mean(data$gdp, na.rm=TRUE)

但这将计算整个列。不想拿每个国家的子集并单独计算,我在想是否可以一次性完成。

1 个答案:

答案 0 :(得分:1)

一个选项是使用{count}分组的na.aggregate(来自zoo-默认情况下取均值并替换NA元素)

library(dplyr)
library(zoo)
df1 %>% 
    group_by(countries) %>% 
    mutate(GDP = na.aggregate(GDP))