【发布时间】:2020-05-07 19:19:48
【问题描述】:
今天我想在不改变水平和顺序的情况下改变我在 R 中的因子值。我要疯了!
我的变量如下所示:
str(df_2$sex)
Factor w/ 2 levels "MALE", "FEMALE": 1 1 1 2 1 2 1 2 2 1 2 1
我想将“MALE”的值更改为 = 0,将“FEMALE”的值更改为 1。 它应该是这样的:
str(df_2$sex)
Factor w/ 2 levels "MALE", "FEMALE": 0 0 0 1 0 1 0 1 1 0 1 0
有没有办法在不将变量定义为数字的情况下做到这一点?
提前致谢。
【问题讨论】:
-
你不能把它作为一个因素。因子由 1 到 N 级的整数代码表示。也许你可以在这里解释你的最终目标是什么。除非将数据导出为不同的格式,否则内部表示是什么无关紧要。
-
目标是有一个“经典”虚拟变量 Varialbe(在社会科学中很常见)作为一个因素。
-
如果它是一个经典的虚拟变量,它不应该是 df_2$sex_male 2 级(“否”,“是”)和 0,0,0,1,1...?
-
你总是可以通过 as.numeric(df_2$sex)-1 转换成一个假人。抱歉不太清楚你需要 0,1 做什么。它是 1,2 的原因是因为 R 是基于 1 的
-
R 的基本建模函数将适当地处理因子变量 - 您无需手动编写代码。