У вас есть ошибка, потому что категория является фактором.
set.seed(100)
admission = data.frame(category=sample(letters[1:4],100,replace=TRUE),
gre = sample(1:600,100))
admission$category = as.character(admission$category)
admission$category[admission$gre <= 440]= "low"
admission$category[admission$gre > 440 & admission$gre <= 580] = "Medium"
admission$category[admission$gre > 580] = "High"
table(admission$category)
High low Medium
3 69 28
или вы можете просто сделать:
admission$category = cut(admission$gre,breaks=c(0,440,580,+Inf),
labels=c("low","Medium","High"))
table(admission$category)
low Medium High
69 28 3