【发布时间】:2018-06-12 01:09:22
【问题描述】:
问题replace NA in a dplyr chain结果进入解决方案
dt %.% group_by(a) %.% mutate(b = ifelse(is.na(b), mean(b, na.rm = T), b))
使用 dplyr。我想用 dplyr 链估算所有列。没有要分组的单列,而是我希望所有数字列都将所有 NA 替换为列均值等手段。
用 tidyverse/dp 替换所有 NA 的最优雅方法是什么?
【问题讨论】:
-
使用
dt %>% group_by(a) %>% mutate_all(funs(ifelse(is.na(.), mean(., na.rm = TRUE), .))如果你想要优雅,那么dt %>% group_by(a) %>% mutate_all(zoo::na.aggregate) -
这取决于你之后想要的操作。有时,我使用
ungroup,因为spread等可能不适用于组列 -
如果您使用的是
rowwise,请使用rowSums,即%>% ungroup %>% mutate(newSum = rowSums(.[columnsofinterest]))