从数字向量中获取类别

Kla*_*sos 2 r numeric categories

我有这个数字向量:

vec <- 1:7
Run Code Online (Sandbox Code Playgroud)

如何使用以下逻辑规则将其转换为3个类别:

if(vec >= 1 && vec < 4) then "category1"

else if(vec >=4 && vec < 6) then "category2"

else if(vec >= 6 && vec < 8) then "category3"
Run Code Online (Sandbox Code Playgroud)

预期结果将是:

result <- c("category1","category1","category1",
            "category2","category2",
            "category3","category3")
Run Code Online (Sandbox Code Playgroud)

更新:

如果类别名称不是连续的(即cat1,cat2,cat3)怎么办?例如

if(vec >= 1 && vec < 4) then "night"

else if(vec >=4 && vec < 6) then "early morning"

else if(vec >= 6 && vec < 8) then "morning"
Run Code Online (Sandbox Code Playgroud)

Dav*_*urg 5

我推荐cut和它的labels变量

cut(vec, c(1, 3, 5, 8), include.lowest = TRUE, labels = paste0("category", 1:3))
# [1] category1 category1 category1 category2 category2 category3 category3
# Levels: category1 category2 category3
Run Code Online (Sandbox Code Playgroud)