【问题标题】:Fill missing value with mean of another variable based on categories in R [duplicate]基于R中的类别用另一个变量的平均值填充缺失值[重复]
【发布时间】:2019-07-31 03:29:01
【问题描述】:

我想用与ID 列对应的val 的平均值替换每一行中val2 中的NA 值。有什么简单的(tidyverse)方法可以做到这一点?

另外,我想知道如何将其替换为 mean(na.rm=TRUE)val2 值本身按类别(例如:对于第 6 行和第 9 行,val2 将替换为 4,@987654328 @ of val2 (for ID==c))

对于这张图片中的数据框:

R 代码:

df <- data.frame(ID=c("a","b","c","a","b","c","a","b","c"),
                 val=c(seq(1:9)), val2=c(1,2,4,NA,5,NA,7,NA,NA))

【问题讨论】:

  • 这称为“目标均值插补”

标签: r dplyr tidyverse na imputation


【解决方案1】:

自己找到答案,如果有比这更好的答案建议,请分享

df %>% 
group_by(ID) %>% 
mutate(val2 = ifelse(is.na (val2), mean(val), val2))

为了点

df %>% 
group_by(ID) %>% 
mutate(val2 = ifelse(is.na(val2), mean(val2,na.rm=TRUE), val2))

【讨论】:

  • @NelsonGon 我在问题中提到了 R 数据帧代码,不知道还需要什么?
猜你喜欢
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 2020-05-30
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多