R语言按分组均值替换数据框列中所有值(含NA)的实现问题
你的现有代码存在两处需要调整的地方:
ifelse条件逻辑限制了仅替换NA值,非NA值会被直接保留,无法实现全部分组值统一为均值的需求- 分组变量填写错误,需求中要求按
Day和Section分组,你代码中误写为Plate
修改后的代码如下:
library(dplyr) mean_value <- df %>% group_by(Day, Section) %>% mutate(Value = mean(Value, na.rm = TRUE))
代码逻辑说明:mean(Value, na.rm = TRUE)会自动忽略当前分组内的NA值计算均值,直接赋值给Value列后,分组内所有行的Value都会被统一替换为该分组的均值,计算结果和你给出的预期输出完全匹配:
- 第1组(Day=1, Section=1)均值:(1.2+0.58)/2 = 0.89
- 第2组(Day=1, Section=2)均值:(1.1+0.8)/2 = 0.95
内容的提问来源于stack exchange,提问作者smgds
相关产品推荐
相关产品推荐

