dữ liệu Cho rằng trông giống như:Chuyển đổi một cột yếu tố để nhiều cột boolean
library(data.table)
DT <- data.table(x=rep(1:5, 2))
Tôi muốn chia dữ liệu này thành 5 cột boolean chỉ ra sự hiện diện của mỗi số.
tôi có thể làm điều này như thế này:
new.names <- sort(unique(DT$x))
DT[, paste0('col', new.names) := lapply(new.names, function(i) DT$x==i), with=FALSE]
Nhưng điều này sử dụng một pesky lapply
mà có lẽ chậm hơn so với phương án data.table và các giải pháp này đập vào mắt tôi như không phải là rất "data.table-ish".
Có cách nào tốt hơn và/hoặc nhanh hơn để tạo các cột mới này không?
Would một cái gì đó như 'model.matrix' thể hữu ích? 'model.matrix (~ cols-1)' – BenBarnes