我有一张包含国家和gdp以及缺失价值的表格。我想用一个平均值而不是整个colomn意味着替换,包括在同一组中我有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)
但这将计算整个列。不想占用每个国家的子集并单独计算我在想是否可以一次性完成。
一种选择是使用na.aggregate
(来自zoo
- 默认采用均值并替换NA
元素)按“国家”分组
library(dplyr)
library(zoo)
df1 %>%
group_by(countries) %>%
mutate(GDP = na.aggregate(GDP))