用R中的列中值填充dataframe列中缺少的值
我有一个数据框架,其中一些列的类型为“factor”,而另一些列的类型为“numeric”。任何“因子”列中都没有缺失值 我尝试使用以下代码将每列中缺少的值替换为列中值:用R中的列中值填充dataframe列中缺少的值,r,dataframe,missing-data,R,Dataframe,Missing Data,我有一个数据框架,其中一些列的类型为“factor”,而另一些列的类型为“numeric”。任何“因子”列中都没有缺失值 我尝试使用以下代码将每列中缺少的值替换为列中值: for(i in 1:ncol(df3)){ df3[is.na(df3[,i]), i] <- median(df3[,i], na.rm = TRUE) } 我确信只有数值列中缺少值,为什么会出现此错误 更重要的是,如何用各自的列中位数填充每列中缺少的值?即使df3[is.na(df3[,I]),I]有零行,R
for(i in 1:ncol(df3)){
df3[is.na(df3[,i]), i] <- median(df3[,i], na.rm = TRUE)
}
我确信只有数值列中缺少值,为什么会出现此错误
更重要的是,如何用各自的列中位数填充每列中缺少的值?即使df3[is.na(df3[,I]),I]
有零行,R仍然需要计算RHS中值(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)
}
}
用于(沿(df3)的序列中的i){
if(是数字的(df3[,i])){
df3[is.na(df3[,i]),i]
for(i in seq_along(df3)) {
if (is.numeric(df3[, i])) {
df3[is.na(df3[, i]), i] <- median(df3[, i], na.rm = TRUE)
}
}