我有一张表格,其中包含国家/地区和国内生产总值以及缺失值。我要替换为均值,而不是整个列均值,而只包括同一组 我有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)
但这将计算整个列。不想拿每个国家的子集并单独计算,我在想是否可以一次性完成。
答案 0 :(得分:1)
一个选项是使用{count}分组的na.aggregate
(来自zoo
-默认情况下取均值并替换NA
元素)
library(dplyr)
library(zoo)
df1 %>%
group_by(countries) %>%
mutate(GDP = na.aggregate(GDP))