是的,最有效的可能是运行set
in a for
loop
设置要修改的所需列(您也可以使用选择所有名称names(DT)
反而)
cols <- c("V1", "V2", "V3")
然后运行循环
for (j in cols) set(DT, i = NULL, j = j, value = as.numeric(DT[[j]]))
或者效率较低但更具可读性的方式就是(注意括号cols
评估变量)
## if you chose all the names in DT, you don't need to specify the `.SDcols` parameter
DT[, (cols) := lapply(.SD, as.numeric), .SDcols = cols]
即使对于大数据集,两者也应该是高效的。您可以阅读更多有关data.table
basics here
Though beware转换的factor
s to numeric
以这种方式上课,请参阅here更多细节