【发布时间】:2019-02-19 00:15:27
【问题描述】:
我有一个包含 37000 行和 27000 列的 data.table。我想在将数据用于预测任务之前对每一列进行预处理和缩放。
我正在使用this 帖子中提到的方法,但发现它工作得非常缓慢,甚至使 R Studio 崩溃。我附上了下面的方法,供参考。是否有更快的方法来缩放大型 data.table 的所有列?
scale.cols <- colnames(DT)
DT[, (scale.cols) := lapply(.SD, scale), .SDcols = scale.cols]
【问题讨论】:
-
我认为
scale只是最基本的z分数计算器,因此您可以将scale替换为function(x) (x - mean(x))/sd(x),它可能会大大加快速度。 -
如果有人使用
data.table,可能想要迭代并使用set(),因为列数很大。 -
@zacdav 如果您拨打
[一次,那将不是问题,许多set比许多[电话要好得多
标签: r data.table