R 使用';重新编码()';整洁的

R 使用';重新编码()';整洁的,r,tidyverse,recode,R,Tidyverse,Recode,我正在处理一个非常混乱的数据集,需要在管道中使用recode()函数将数字0:30转换为四个数字类别(0,1,2,3,4) 我所拥有的: recode(var, 10:30 = 4, 6:9 = 3, 3:5 = 2, 1:2 = 1, 0 = 0)) 非常感谢您的帮助 当 library(dplyr) case_when(var %in% 10:30 ~ 4,

我正在处理一个非常混乱的数据集,需要在管道中使用recode()函数将数字0:30转换为四个数字类别(0,1,2,3,4)

我所拥有的:

recode(var, 10:30 = 4,
              6:9 = 3,
              3:5 = 2,
              1:2 = 1,
              0 = 0))

非常感谢您的帮助

library(dplyr)
case_when(var %in% 10:30 ~ 4,
               var %in% 6:9 ~ 3, 
               var %in% 3:5 ~ 2,
               var %in% 1:2 ~ 1, 
                var == 0 ~ 0)

或者另一个选项是
cut

as.integer(cut(var, breaks = c(-Inf, 0, 2, 5, 9, 30, Inf)))
注意:更改
cut
中的
include.lower
right
选项以进行调整

数据
set.seed(24)
变量
set.seed(24)
var <- sample(0:35, 50, replace = TRUE)