Loops if-else aninhados em R

Eu tenho um quadro de dados chamado "crimes" que contém uma coluna "pré-classificação" que indica a taxa de crimes antes que uma determinada lei seja implementada. Gostaria de colocar cada taxa em uma coluna "rate_category" usando um loop aninhado if-else. Eu tenho o seguinte 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

e aqui está um exemplo reproduzível:

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

No entanto, quando executo o loop com meu quadro de dados original, todos os níveis na coluna "rate_category" estão incorretamente definidos como 1. Qual parece ser o problema com o loop acima?

questionAnswers(5)

yourAnswerToTheQuestion