【问题标题】:Replace Unknown values in factor替换因子中的未知值
【发布时间】:2021-05-03 07:35:09
【问题描述】:

我正在搜索如何在我的数据集中替换被排序为“未知”的缺失值 所有未知值都在因子列中.. 例如我的婚姻状况,属性为已婚,单身离婚和未知。我正在寻找一种方法如何替换“未知”而不是删除。其他因素只有是,否,未知。

bank$marital <- factor(c('married','divorced','married','unknown','single'))

我只想用例如“single”替换“unknown”

bank$marital = bank$marital.fillna(bank$marital.mode[yes],inplace = True)

bank$marital[is.na(bank$marital)]<-mean(bank$marital,na.rm=TRUE)

我不能使用均值,因为它的因素... 但是我找不到正确的方法来替换因子中的“未知”值

【问题讨论】:

  • 显然没有 c('married','divorced','married','unknown','single') 的意思。您必须选择要替换 NA 的值。我的猜测是“未知”将是正确的选择。那么bank$marital[is.na(bank$marital)] &lt;- "unknown")?
  • 我没有 NA 值。NA 值保存为“未知”,我需要将“未知”值替换为例如“x”

标签: r dataframe dataset missing-data


【解决方案1】:

这个?

here

bank <- data.frame(marital = as.factor(c('married','divorced','married','unknown','single')))

levels(bank$marital) <- c(levels(bank$marital), "x")    # add new level

bank$marital[ bank$marital == "unknown" ] <- "x"

bank$marital
#> [1] married  divorced married  x        single  
#> Levels: divorced married single unknown x

reprex package (v0.3.0) 于 2021-01-29 创建

【讨论】:

  • 是的,这个。谢谢
  • 数字属性中是否有类似“平均值”的函数可以帮助将“未知”值拆分为已婚、离婚、单身?
  • 我认为您需要“手动”执行此操作,方法是随机分配其中一个值或计算要替换的值的数量,然后选择“正确”分布。
【解决方案2】:

你的意思是像下面这样的吗?

f <- type.convert(f, as.is = TRUE)
replace(f,is.na(f),mean(f,na.rm = TRUE))
# [1] 1.000 2.775 4.000 3.000 3.100 2.775

虚拟数据

f <- factor(c(1,NA,4,3,3.1,NA))

【讨论】:

  • 我不能发布照片,但是。 ctrlv.link/dlhO 例如,这是婚姻列下的值。没有 NA 值,因为它排序为未知值。我想用例如“已婚”替换“未知”值
猜你喜欢
  • 1970-01-01
  • 2014-05-14
  • 2016-09-30
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 2016-12-31
  • 1970-01-01
相关资源
最近更新 更多