Konwertuj kolumnę czynników na wiele kolumn logicznych
Dane, które wyglądają tak:
library(data.table)
DT <- data.table(x=rep(1:5, 2))
Chciałbym podzielić te dane na 5 kolumn logicznych, które wskazują obecność każdej liczby.
Mogę to zrobić w ten sposób:
new.names <- sort(unique(DT$x))
DT[, paste0('col', new.names) := lapply(new.names, function(i) DT$x==i), with=FALSE]
Ale to używa nieznośnegolapply
który jest prawdopodobnie wolniejszy niż alternatywa data.table i rozwiązania te wydają mi się nie bardzo „data.table-ish”.
Czy istnieje lepszy i / lub szybszy sposób tworzenia nowych kolumn?