R Data.Table 将数据分成组和标签

R Data.Table Cut Data Into Groups And Label

data1=data.frame("Score"=c(1,3,4,4,4,5,6,6,6,6,6),
"Group"=c(1,1,2,2,2,2,3,3,3,3,3),
"Group1"=c('Cat','Cat','Fox','Fox','Fox','Fox','Dog','Dog','Dog','Dog','Dog'))

我有 'data1' 个分数。我想加群和群1,规则是:

如果 0 <= 分数 <= 1,组 = 1,组标签 = 猫

如果 2 <= 分数 <= 4,组 = 2,组标签 = Fox

如果 5 <= 分数 <= 10,组 = 3,组标签 = 狗

我们可以使用cut创建'Group',然后根据'Group'的数值索引,将值替换为'Cat'、'Fox' , 'Dog' 在 'Group1'

library(data.table)
setDT(data1)[, Group := as.integer(cut(Score, breaks = c(-Inf, 1, 4, 10)))][,
         Group1 := c('Cat', 'Fox', 'Dog')[Group]][]