【发布时间】:2019-03-22 13:55:44
【问题描述】:
我一直在尝试用手段替换 NA,非常感谢您的帮助。
我想用列内组的平均值替换数据框多列中的 NA。在下面的示例中,我想将 x1 中的 NA 替换为 14.5,因为 13 和 16 在第 1 个月。x2 中的 NA 应替换为 4.5。
这是我尝试过的方式:
library(tidyverse)
df <- tibble(x1 = c(13, NA, 16, 17, 16, 12), x2 = c(1, 4, 4, 3, 5, NA),
month = c(1, 1, 1, 2, 2, 2))
by_month <- group_by(df, month)
for (i in length(df)){
for (j in nrow(df[[,i]])){
if(is.na(df[[j, i]])){
df[[j, i]] <- summarize(by_month[[j, i]],
group_mean = mean(df[[, i]], na.rm=TRUE))
}
else{
df[[j, i]] <- df[[j, i]]
}
}
}
但是,我只是得到错误'参数“..1”丢失,没有默认值',我对此进行了调查 - 但它没有帮助。任何帮助都会很棒:)
【问题讨论】: