R Data.Table вырезать данные в группы и метки - PullRequest
1 голос
/ 20 марта 2020
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» с просто счетом. I sh добавить группу и группу 1. Правила:

Если 0 <= оценка <= 1, группа = 1, GrouopLabel = Cat </p>

Если 2 <= оценка < = 4, Группа = 2, GrouopLabel = Лиса </p>

Если 5 <= оценка <= 10, Группа = 3, GrouopLabel = Собака </p>

1 Ответ

1 голос
/ 20 марта 2020

Мы можем использовать cut для создания «Группы», затем, основываясь на числовом индексе c «Группы», заменить значения на «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]][]
...