Bucles if-else anidados en R

Tengo un marco de datos llamado "delitos" que contiene una columna "tasa previa" que denota la tasa de delitos antes de que se implemente una determinada ley. Me gustaría poner cada tasa en una columna "rate_category" usando un bucle anidado if-else. Tengo el siguiente código:

crimes$rate_category = 
  with(crimes, ifelse(pre_rate > 0.26 && pre_rate < 0.87, 1,
    ifelse(pre_rate > 1.04 && pre_rate < 1.94, 2, 
      ifelse(pre_rate > 2.03 && pre_rate < 2.96, 3, 
        ifelse(pre_rate > 3.10 && pre_rate < 3.82, 4, 
          ifelse(pre_rate > 4.20 && pre_rate < 11.00, 5, "NA"))))))
crimes

y aquí hay un ejemplo reproducible:

pre_rate = c(0.27, 1.91, 2.81, 3.21, 4.80) 
crimes = data.frame(pre_rate)   
crimes

Sin embargo, cuando ejecuto el bucle con mi marco de datos original, todos los niveles en la columna "rate_category" están configurados incorrectamente en 1. ¿Cuál parece ser el problema con el bucle anterior?

Respuestas a la pregunta(5)

Su respuesta a la pregunta