我想将列中的所有 NA 值交换为相应的中位数
id <- c(1,2,3,4,5,6,7,8,9,10)
varA <- c(15,10,8,19,7,5,NA,11,12,NA)
varB <- c(NA,1,2,3,4,3,3,2,1,NA)
df <- data.frame(id, varA,varB)
median(df$varA, na.rm=TRUE)
median(df$varB, na.rm=TRUE)
df1 <- df
# Columns to be modified with Median in place of the NA
col <- c("varA", "varB")
df1[col] <- sapply(df1[col],
function(x) replace(x, x %in% is.na(df1), median[col]))
df1
[.default
(df1, col) 中出现错误:下标类型“closure”无效
最佳答案
我们可能会使用
library(zoo)
df[col] <- na.aggregate(df[col], FUN = median)
关于r - 如何将列中的所有 NA 换成中位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74586878/