【发布时间】:2017-06-02 15:40:15
【问题描述】:
我正在尝试在 R 的数据框中重新分类 NA。如果它们是字符值或因子,我希望它们是一个值,如果它们是数字或整数,我希望它们是另一个值。我想出了以下 if 语句,但由于某种原因,我离开了。最好的方法是什么?
for(i in ncol(df_eng)) {
if(class(df_eng[,i]) == "integer") {
is.na(df_eng[,i]) <- 10219300
}
else if(class(df_eng[,i]) == "numeric") {
is.na(df_eng[,i]) <- 10219300
}
else {
is.na(df_eng[,i]) <- "ABCDEF"
}
}
Error in `[<-.data.frame`(`*tmp*`, , i, value = c("2017-05-26 18:20:20", :
replacement has 791 rows, data has 790
【问题讨论】:
-
我认为
is.na的分配不正确。检查 ` v1 df_eng[,i][is.na(df_eng[,i])] <- 10219300