比使用mutate(ifelse)更高效的变量重编码方法是使用case_when函数。case_when函数可以根据多个条件来进行变量重编码,并且在处理大型数据时更高效。
下面是一个使用case_when函数进行变量重编码的示例代码:
library(dplyr)
# 创建一个包含原始数据的数据框
df <- data.frame(x = c(1, 2, 3, 4, 5))
# 使用case_when函数进行变量重编码
df <- df %>%
mutate(x_recode = case_when(
x == 1 ~ "A",
x == 2 ~ "B",
x == 3 ~ "C",
x == 4 ~ "D",
x == 5 ~ "E",
TRUE ~ "Other"
))
# 打印重编码后的数据框
print(df)
上述代码中,我们使用case_when函数根据x的不同取值将其重编码为不同的字符。条件判断语句以~符号分隔,每个条件后面跟着要赋值的结果。最后一个TRUE ~ "Other"表示如果x的取值不满足前面的条件,则赋值为"Other"。
使用case_when函数进行变量重编码的好处是,可以一次性处理多个条件,并且代码更简洁。与使用ifelse函数相比,在处理大型数据时,case_when函数的性能更好。