Привет, я бы сделал это так:
data$group<-cut(data$value,
breaks = seq(0,4500,500),
labels = paste("Group",LETTERS[1:9], sep="_"))
или, если вы предпочитаете более базовый c стиль использования R []:
under_500<-data[data$value<500 ,]
over500_under900<-data[data$value %in% 501:900 ,]
## etc..
over4000<-data[data$value>4000 ,]