Search code examples
rcategorical-datarecode

Create a categorical variable


I want to categorized one variable with the next conditionals:

0 - 4: "fail" 5 - 7: "good" 8 - 10: "excellent" None of the above: NA

I tried using the recode function

The values of variable is numeric

segur <- data$segur 

Created a new variable using recode

dt1 <- recode(segur, "c(0,4)='suspenso';c(5, 7)='aceptable';c(8,10)='excelente'; else='NA'")
dt1

How can I fix?


Solution

  • using factor in base R

    Data:

    # set random seed
    set.seed(1L)
    # without any NA
    x1 <- sample(x = 1:10, size = 20, replace=TRUE)
    # with NA
    x2 <- sample(x = c(1:10, NA), size = 20, replace=TRUE)
    

    Code:

    # without any NA
    as.character(factor(x1, levels = c(0:10), labels = c(rep("fail", 5), rep("good", 3), rep("excellent", 3)), exclude=NA))
    
    # with NA    
    as.character(factor(x2, levels = c(0:10), labels = c(rep("fail", 5), rep("good", 3), rep("excellent", 3)), exclude=NA))