我正在尝试从大型 R data.table 中的每一列中减去每一列,该表有 13125 列和 90 行。
我正在跟进上一个问题,该问题针对较小尺寸的 data.tables 解决了这个问题(从 R data.table 中的每一列中减去每一列)。
我的问题是我目前内存不足,无法生成列组合的结果 data.table(这似乎需要 59.0GB)。
我的问题是,是否有一种更节省内存的方法来计算使用 combn 或更大数据集的另一个函数的列差异?
我一直在使用的代码是:
# I have a data.table of 13125 columns and 90 rows, called data.
# use combn to generate all possible pairwise column combinations (column + column),
# then within this apply a function to subtract the column value from its paired column value.
# this is done for each row, to produce a new datatable called res.
res <- as.data.table(combn(colnames(data), 2, function(x) data[[x[1]]] - data[[x[2]]]))
# take the pairwise column combinations and paste the pairing as the new column name
colnames(res) <- combn(colnames(data), 2, paste, collapse="_")
如果这个问题太相似并因此被视为重复,我深表歉意。对于如何针对我的数据规模提高此代码的效率的任何建议,我将不胜感激。