【问题标题】:How to Change R factor value without changing levels?如何在不改变水平的情况下改变 R 因子值?
【发布时间】: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 的基本建模函数将适当地处理因子变量 - 您无需手动编写代码。

标签: r factors recode


【解决方案1】:

感谢 cmets。有时,您想实现不需要的东西。 我学到了什么:

  • R 从 1 开始计数。
  • 因素很实用,几乎不需要任何处理。
  • 我急需看一下forcats的包。

致以诚挚的问候 艾欧尼奥

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多