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

问题描述 投票:1回答:1

我有一张包含国家和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)

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

r mean
1个回答
1
投票

一种选择是使用na.aggregate(来自zoo - 默认采用均值并替换NA元素)按“国家”分组

library(dplyr)
library(zoo)
df1 %>% 
    group_by(countries) %>% 
    mutate(GDP = na.aggregate(GDP))
© www.soinside.com 2019 - 2024. All rights reserved.