z danych, które wygląda następująco:Konwersja kolumnę czynnika do wielu kolumn logicznych
library(data.table)
DT <- data.table(x=rep(1:5, 2))
chciałbym podzielić te dane na 5 kolumn logicznych, które wskazują na obecność każdego numeru.
można zrobić to tak:
new.names <- sort(unique(DT$x))
DT[, paste0('col', new.names) := lapply(new.names, function(i) DT$x==i), with=FALSE]
Ale ta wykorzystuje brzydkie lapply
który jest prawdopodobnie wolniej niż data.table alternatywa i rozwiązanie to wydaje mi się nie bardzo „data.table-owski”.
Czy istnieje lepszy i/lub szybszy sposób tworzenia nowych kolumn?
Byłoby coś 'model.matrix' być pomocne? 'model.matrix (~ cols-1)' – BenBarnes