Hi @22623639, welcome to RStudio Community.
You need to use the vectorized ifelse() instead.
a <- data.frame(age = c(63, 67, 67, 37, 41, 56, 62, 57, 63, 53))
print(a)
#> age
#> 1 63
#> 2 67
#> 3 67
#> 4 37
#> 5 41
#> 6 56
#> 7 62
#> 8 57
#> 9 63
#> 10 53
a$agecat <- ifelse(a$age >= 25 & a$age < 40,
yes = "25-40 years",
no = ifelse(a$age >= 40 & a$age < 65,
yes = "40-65 years",
no = ifelse(a$age >= 65 & a$age < 80,
yes = "65-80 years",
no = NA)))
print(a)
#> age agecat
#> 1 63 40-65 years
#> 2 67 65-80 years
#> 3 67 65-80 years
#> 4 37 25-40 years
#> 5 41 40-65 years
#> 6 56 40-65 years
#> 7 62 40-65 years
#> 8 57 40-65 years
#> 9 63 40-65 years
#> 10 53 40-65 years
Created on 2020-04-15 by the reprex package (v0.3.0)