Как сгенерировать новый столбец в data.table, основанный на нескольких условиях?Как создать новый столбец в data.table на основе нескольких условий?
Если в среде data.frame, я могу использовать ниже коды.
df<-data.frame(a=c(1,2,3,4,5,6,7,8,9,10),b=c(10,20,30,40,50,60,70,80,90,100))
df$c<-ifelse(df$b<=30,"G1",
ifelse(df$b>30 & df$b<=60, "G2",
ifelse(df$b>60 & df$b<=80, "G3",
ifelse(df$b>80 & df$b<=90, "G4","G5"))))
В data.table среде, я знаю, что могу использовать
dt<-data.table(a=c(1,2,3,4,5,6,7,8,9,10),b=c(10,20,30,40,50,60,70,80,90,100))
dt[,d:=...]
, чтобы создать новый столбец. Но как сгенерировать df $ c в dt с помощью dt [, d: = ...]?
Какая глупость я? Я не пытался. Ниже одной работы.
dt<-data.table(a=c(1,2,3,4,5,6,7,8,9,10),b=c(10,20,30,40,50,60,70,80,90,100))
dt[,d:=ifelse(b<=30,"G1",
ifelse(b>30 & b<=60, "G2",
ifelse(b>60 & b<=80, "G3",
ifelse(b>80 & b<=90, "G4","G5"))))]
Благодаря
попробовать 'дт [, "С": = ...]' , не стесняйтесь отвечать и принимать – jangorecki
, если вы имеете в виду все эти * ifelse * - вы пытались удалить только 'dt $' и поставить как RHS ': ='? – jangorecki
Те несколько операторов ifelse следует заменить на «cut» –