首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改数据集R中的所有因子NA

更改数据集R中的所有因子NA
EN

Stack Overflow用户
提问于 2018-02-06 22:59:51
回答 2查看 122关注 0票数 1

我有一个要用来在R studio中构建决策树的数据集。我有相当多的因素是空的。我希望将数据集中所有为空的因子更改为“无数据”,我有超过100个这样的因子,所以我不想逐个进行,我宁愿能够一次更改所有这些因子。

数据示例(请注意,这些都是因子,我知道当将它们放入R中时,它们是数字,但我不知道如何在从csv读取数据时以重复的方式显示因子):

代码语言:javascript
复制
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)) 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-06 23:16:46

当我们有factor列并且想要用一个新值替换其中一个值时,要么再次调用factor,要么在进行更改之前将新值添加为因子的levels之一。假设我们必须为第一列以外的变量重新编码,使用lapply遍历各列,添加"No Data“作为levels之一,然后使用”No Data“replace NA元素,最后将list输出分配给感兴趣的列

代码语言:javascript
复制
df[-1] <- lapply(df[-1], function(x) {
        levels(x) <- c(levels(x), "No Data")
         replace(x, is.na(x), "No Data")
          }) 
票数 2
EN

Stack Overflow用户

发布于 2018-02-06 23:02:20

你可以试试这个:

代码语言:javascript
复制
df[is.na(df)] <- "NoData"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48645938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档