You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言factor函数使用疑问:将性别列转为指定水平因子时出现NA值

R语言factor函数使用疑问:将性别列转为指定水平因子时出现NA值

嗨,我来帮你排查这个问题~

你遇到全NA的原因是搞反了factor()函数里levels和labels的作用:

  • levels参数需要指定的是原数据中已经存在的取值,你的原性别列是"Man"和"Woman"字符,不是0和1;
  • labels才是你想要替换成的新水平标签。

所以正确的代码应该是这样的:

df$gender <- factor(df$gender, levels = c("Man", "Woman"), labels = c(0, 1))

这样运行后,R就会把原数据里的"Man"对应为因子水平0,"Woman"对应为水平1,再用str(df)查看就能看到正常的因子结果啦。

另外你提到用as.factor()只是把字符列转换成了以原字符为水平的因子,自然不会出现你想要的0和1标签,这也是正常的哦。

备注:内容来源于stack exchange,提问作者ANGELIKI BIRMPILI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 11:05:29