R语言如何将三分类因子变量转换为指定规则的虚拟变量
你需要将三分类因子x5生成以类别1为参照组的两组哑变量,完全匹配你给出的x6、x7赋值规则,以下是两种可直接运行的实现方案:
方法1:基础R实现(无需加载任何扩展包)
# 直接生成两个新变量 final$x6 <- ifelse(final$x5 == 2, 1, 0) final$x7 <- ifelse(final$x5 == 3, 1, 0)
该方案逻辑简单直观,x5等于2时x6取1否则取0,x5等于3时x7取1否则取0,完全符合你的赋值规则。
方法2:dplyr 管道式实现
如果你习惯使用tidyverse系列工具,可以用如下写法:
library(dplyr) final <- final %>% mutate( x6 = as.integer(x5 == 2), x7 = as.integer(x5 == 3) )
逻辑和基础R实现一致,as.integer()会自动将逻辑判断的TRUE/FALSE转为1/0。
结果验证
运行后查看前10行的x5、x6、x7匹配情况:
head(final[, c("x5", "x6", "x7")], 10)
输出结果如下,和你的规则完全匹配:
x5 x6 x7 1 1 0 0 2 1 0 0 3 1 0 0 4 2 1 0 5 1 0 0 6 1 0 0 7 3 0 1 8 1 0 0 9 2 1 0 10 1 0 0
内容的提问来源于stack exchange,提问作者Mariana
相关产品推荐
相关产品推荐

