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
相关产品推荐
相关产品推荐

