我有一个要用来在R studio中构建决策树的数据集。我有相当多的因素是空的。我希望将数据集中所有为空的因子更改为“无数据”,我有超过100个这样的因子,所以我不想逐个进行,我宁愿能够一次更改所有这些因子。
数据示例(请注意,这些都是因子,我知道当将它们放入R中时,它们是数字,但我不知道如何在从csv读取数据时以重复的方式显示因子):
Outcome=c(1,1,1,0,0,0)
VarA=c(1,1,NA,0,0,NA)
VarB=c(0,NA,1,1,NA,0)
VarC=c(0,NA,1,1,NA,0)
VarD=c(0,1,NA,0,0,0)
VarE=c(0,NA,1,1,NA,NA)
VarF=c(NA,NA,0,1,0,0)
VarG=c(0,NA,1,1,NA,0)
df=as.data.frame(cbind(Outcome, VarA, VarB,VarC,VarD,VarE,VarF,VarG)) 发布于 2018-02-06 23:16:46
当我们有factor列并且想要用一个新值替换其中一个值时,要么再次调用factor,要么在进行更改之前将新值添加为因子的levels之一。假设我们必须为第一列以外的变量重新编码,使用lapply遍历各列,添加"No Data“作为levels之一,然后使用”No Data“replace NA元素,最后将list输出分配给感兴趣的列
df[-1] <- lapply(df[-1], function(x) {
levels(x) <- c(levels(x), "No Data")
replace(x, is.na(x), "No Data")
}) 发布于 2018-02-06 23:02:20
你可以试试这个:
df[is.na(df)] <- "NoData"https://stackoverflow.com/questions/48645938
复制相似问题