Поскольку вы не добавили воспроизводимый пример, я создал маленький (но учтите, что вы всегда должны добавлять пример).
Используя ifelse из базы, вы можете сделать это так:
df = data.table(rank = c(1.2, 3.3, 2.5, 3.7, 5.8, 6, 3, 1.1, 0.5))
df$rank2 = ifelse(df$rank>0 & df$rank<=1.2, 1,
ifelse(df$rank>1.2 & df$rank<=2.1, 2,
ifelse(df$rank>2.1 & df$rank<=2.9, 3,
ifelse(df$rank>2.9 & df$rank<=3.7, 4,
ifelse(df$rank>3.7 & df$rank<=4.5, 5, 6)))))
Последнее значение ifelse должно быть вашим максимальным значением ранга, поэтому аргумент «нет» будет последним диапазоном.
Если это повторяющаяся проблема, вам следует создать функцию.
Надеюсь, это поможет.