用 R 中的列中位数填充数据框列中的缺失值
Fill missing values in dataframe columns with column median in R
我有一个数据框,其中一些列的类型为 "factor",其他列的类型为 "numeric"。在任何 "factor" 列中都没有缺失值。
我正在尝试使用以下代码用列中位数替换每列中的缺失值:
for(i in 1:ncol(df3)){
df3[is.na(df3[,i]), i] <- median(df3[,i], na.rm = TRUE)
}
但是我收到错误:
Error in median.default(df3[, i], na.rm = TRUE) : need numeric data
我确定只有数字列中存在缺失值,为什么会出现此错误?
更重要的是,如何用各自的列中位数填充每列中的缺失值?
即使 df3[is.na(df3[, i]), i]
有零行,R 仍然需要计算 RHS median(df3[,i], na.rm = TRUE)
。您可以添加检查以仅替换数字列中的缺失值:
for(i in seq_along(df3)) {
if (is.numeric(df3[, i])) {
df3[is.na(df3[, i]), i] <- median(df3[, i], na.rm = TRUE)
}
}
我有一个数据框,其中一些列的类型为 "factor",其他列的类型为 "numeric"。在任何 "factor" 列中都没有缺失值。
我正在尝试使用以下代码用列中位数替换每列中的缺失值:
for(i in 1:ncol(df3)){
df3[is.na(df3[,i]), i] <- median(df3[,i], na.rm = TRUE)
}
但是我收到错误:
Error in median.default(df3[, i], na.rm = TRUE) : need numeric data
我确定只有数字列中存在缺失值,为什么会出现此错误?
更重要的是,如何用各自的列中位数填充每列中的缺失值?
即使 df3[is.na(df3[, i]), i]
有零行,R 仍然需要计算 RHS median(df3[,i], na.rm = TRUE)
。您可以添加检查以仅替换数字列中的缺失值:
for(i in seq_along(df3)) {
if (is.numeric(df3[, i])) {
df3[is.na(df3[, i]), i] <- median(df3[, i], na.rm = TRUE)
}
}