【发布时间】:2020-11-07 20:08:42
【问题描述】:
我有一个来自心理学清单答案的 df。我想用列值的平均值更改一些 NA 值。我试过两种方法
第一个是创建一个稍后与 sapply 一起使用的函数:
nar <- function(x) {x[is.na(x)] <<- round(mean(x, na.rm = TRUE))}
但是当我证明这个功能时,它不起作用。但是,此代码实际上适用于单列:
x[is.na(x)] <<- round(mean(x, na.rm = TRUE)
所以我发现我也可以做一个 ifelse,它也适用于一列,但我不知道如何将它应用到所有列(我尝试了 sapply 和应用,但它不起作用)。但是我不知道在 ifelse 函数中将什么作为 NO 参数。我只是想让它什么都不做,但我不知道该怎么做。
ifelse(is.na(dfv[,col]) == TRUE, dfv[,col][is.na(dfv[,col])] <- round(mean(dfv[,col], na.rm = TRUE)), help)
所以可能会有疑问:如何将 NA 值自动替换为 NA 值在整个数据框中的列值的平均值?
我会很感激任何帮助
【问题讨论】:
标签: r dataframe replace mean na