我在R中编写了以下代码,工作正常.但是,假设我必须将类似的代码应用于具有多个级别(> 6)的因子变量,则ifelse语句可能非常难以阅读.我想知道是否还有其他更有效的方法来编写易于阅读的代码,但仍然使用dplyr.
library(dplyr)
mtcars %>% arrange(gear) %>%
mutate(gearW = ifelse(gear == 3, "Three", ifelse(gear == 4, "Four", "Five")))
Run Code Online (Sandbox Code Playgroud)
我们可以用 factor
mtcars %>%
arrange(gear) %>%
mutate(gearW = as.character(factor(gear, levels=3:5,
labels= c("three", "four", "five"))))
Run Code Online (Sandbox Code Playgroud)
或者另一个选择是 english
library(english)
mtcars %>%
arrange(gear) %>%
mutate(gearW = as.character(english(gear)))
Run Code Online (Sandbox Code Playgroud)
编辑:添加了as.character@David Arenburg和@Konrad Rudolph的评论.