更改数据集 R 中的所有因子 NA
Change all Factor NA's in dataset R
我有一个要用于在 R studio 中构建决策树的数据集。我有很多因素是空的。我想将数据集中所有为空的因素更改为 "No Data",我有 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))
你可以试试这个:
df[is.na(df)] <- "NoData"
当我们有 factor
列并想用新值替换其中一个值时,请再次调用 factor
或将新值添加为 levels
之一在进行更改之前的因素。假设我们必须为第一列以外的变量重新编码,使用 lapply
遍历列,添加 'No Data' 作为 levels
之一,然后 replace
NA 元素使用 "No Data",最后将 list
输出分配给感兴趣的列
df[-1] <- lapply(df[-1], function(x) {
levels(x) <- c(levels(x), "No Data")
replace(x, is.na(x), "No Data")
})
我有一个要用于在 R studio 中构建决策树的数据集。我有很多因素是空的。我想将数据集中所有为空的因素更改为 "No Data",我有 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))
你可以试试这个:
df[is.na(df)] <- "NoData"
当我们有 factor
列并想用新值替换其中一个值时,请再次调用 factor
或将新值添加为 levels
之一在进行更改之前的因素。假设我们必须为第一列以外的变量重新编码,使用 lapply
遍历列,添加 'No Data' 作为 levels
之一,然后 replace
NA 元素使用 "No Data",最后将 list
输出分配给感兴趣的列
df[-1] <- lapply(df[-1], function(x) {
levels(x) <- c(levels(x), "No Data")
replace(x, is.na(x), "No Data")
})