如何在 R 中一次重新编码具有相同映射的多个变量?
How can I recode multiple variables with the same mapping at once in R?
我正在努力寻找一种更简洁的方法来以更精简的方式一次重新编码(数字到数字)多个变量。有没有比下面这段代码更简单的替代方法?
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)) %>% ...
我们可以使用mutate
和across
,指定列名在across
中为recode
d来修改那些列
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)))
我正在努力寻找一种更简洁的方法来以更精简的方式一次重新编码(数字到数字)多个变量。有没有比下面这段代码更简单的替代方法?
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)) %>% ...
我们可以使用mutate
和across
,指定列名在across
中为recode
d来修改那些列
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)))