因子变量按比例标记:如何按指定比例随机填充性别字段NA值
R 按指定数量随机替换性别字段NA值
适配因子类型字段的完整实现代码
如果你的Gender字段是因子类型,需要先确保存在male、female两个水平,避免赋值时生成新的无效NA:
# 补全因子水平(如果原字段已经包含对应水平可跳过该步) levels(data$Gender) <- unique(c(levels(data$Gender), "male", "female")) # 定位所有NA值对应的行索引 na_idx <- which(is.na(data$Gender)) # 从NA行中随机抽取7个索引,赋值为female female_idx <- sample(na_idx, size = 7, replace = FALSE) data$Gender[female_idx] <- "female" # 剩余未处理的NA全部赋值为male data$Gender[is.na(data$Gender)] <- "male"
代码说明
which(is.na(data$Gender))只会匹配性别为NA的行,不会修改原本已有的有效性别记录sample()的replace = FALSE参数保证抽取的7个索引不重复,刚好满足7个female、43个male的分配需求- 如需固定随机结果方便复现,可以在运行抽样代码前添加
set.seed(自定义数字,比如123),每次运行都会得到一致的赋值结果
内容的提问来源于stack exchange,提问作者mochi
相关产品推荐
相关产品推荐

