7
votes

Convertir une colonne de facteur en plusieurs colonnes booléennes

données données à ressembler à:

new.names <- sort(unique(DT$x))

DT[, paste0('col', new.names) := lapply(new.names, function(i) DT$x==i), with=FALSE]


1 commentaires

Quelque chose comme modèle.matrix être utile? modèle.matrix (~ cols-1)


3 Réponses :


9
votes

Comment sur Model.Matrix ? XXX

Apparemment, vous pouvez mettre modèle.matrix dans [. Données. Tableau pour donner les mêmes résultats. Je ne sais pas si ce serait plus rapide: xxx


0 commentaires

2
votes

Il y a aussi nnet :: classer.ind.ind xxx


0 commentaires

0
votes
library(data.table)
DT <- data.table(x=rep(1:5, 2))

# add column with id
DT[, id := seq.int(nrow(DT))]

# cast long table into wide
DT.wide <- dcast(DT, id ~ x, value.var = "x", fill = 0, fun = function(x) 1)

0 commentaires