datos Dado que se parece a:Convierte una columna factor a varias columnas booleanas
library(data.table)
DT <- data.table(x=rep(1:5, 2))
me gustaría dividir estos datos en 5 columnas booleanas que indican la presencia de cada número.
que pueda hacer esto de esta manera:
new.names <- sort(unique(DT$x))
DT[, paste0('col', new.names) := lapply(new.names, function(i) DT$x==i), with=FALSE]
Pero esto utiliza un molesto lapply
que es probablemente más lenta que la alternativa data.table y esta solución no me parece muy "data.table-ish".
¿Existe una manera mejor y/o más rápida de crear estas nuevas columnas?
¿Podría algo como 'model.matrix' ser útil? 'model.matrix (~ cols-1)' – BenBarnes