【问题标题】:How can I recode multiple variables with the same mapping at once in R?如何在 R 中一次重新编码具有相同映射的多个变量?
【发布时间】:2021-04-11 17:28:14
【问题描述】:

我正在努力寻找一种更简洁的方法来一次以更精简的方式重新编码(数字到数字)多个变量。有没有比下面这段代码更简单的方法?


mhomes_min <- mhomes %>% 
  mutate(contrib_private_3rd_party = recode(contrib_private_3rd_party,
     `1` = 1,
     `2` = 49,
     `3` = 100,
     `4` = 200,
     `5` = 500,
     `6` = 1000,
     `7` = 5000,
     `8` = 10000,
     `9` = 20000)) %>% 
  mutate(contrib_firm_3rd_party = recode(contrib_firm_3rd_party,
     `1` = 1,
     `2` = 49,
     `3` = 100,
     `4` = 200,
     `5` = 500,
     `6` = 1000,
     `7` = 5000,
     `8` = 10000,
     `9` = 20000)) %>% ...

【问题讨论】:

    标签: r dplyr mapping recode


    【解决方案1】:

    我们可以使用mutateacross,在across 中指定列名为recoded 来修改这些列

    mhomes <- mhomes %>%
      mutate(across(c(contrib_private_3rd_party, contrib_firm_3rd_party), 
         ~ recode(., `1` = 1,
     `2` = 49,
     `3` = 100,
     `4` = 200,
     `5` = 500,
     `6` = 1000,
     `7` = 5000,
     `8` = 10000,
     `9` = 20000)))
    

    【讨论】:

      猜你喜欢
      • 2018-07-18
      • 2020-02-01
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 2023-02-26
      • 1970-01-01
      相关资源
      最近更新 更多