Учитывая данные, которые выглядят как:
library(data.table)
DT <- data.table(x=rep(1:5, 2))
Я хотел бы разбить эти данные на 5 логических столбцов, которые указывают на наличие каждого числа.
Я могу сделать это вот так:
new.names <- sort(unique(DT$x))
DT[, paste0('col', new.names) := lapply(new.names, function(i) DT$x==i), with=FALSE]
Но здесь используется надоедливый lapply
, который, вероятно, медленнее, чем альтернатива data.table, и это решение кажется мне не очень «data.table -ish».
Есть ли лучший и/или более быстрый способ создания этих новых столбцов?