次のようなデータが与えられた場合:
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っぽい」とは言えません。
これらの新しい列を作成するためのより良い方法やより高速な方法はありますか?