大型数据集下data.table并行按行处理及新列插入问题
解决data.table并行计算结果拆分多列问题
问题原因
你遇到的报错是因为future_map(nested_DT, lm_summary)返回的是10000个长度为4的数值向量组成的列表,直接赋值给4列时,data.table无法正确匹配维度——它期望给每列分配10000个单独的值,而不是把每个含4个值的向量对应到一列。
正确代码
可以用future_map_dfr直接将结果行绑定为data.table,再赋值给指定列:
plan(multisession, workers=6) Synthetic_Data[, (Names) := future_map_dfr(nested_DT, lm_summary)]
或者用transpose配合as.data.table转换列表结构后赋值:
plan(multisession, workers=6) Synthetic_Data[, (Names) := as.data.table(transpose(future_map(nested_DT, lm_summary)))]
验证效果
运行上述代码后,Synthetic_Data会新增Estimate、Std.Error、t-value、Pr(>|t|)四列,每列对应每个id分组下线性回归的结果,和你预期的一致。
内容的提问来源于stack exchange,提问作者user3647872
相关产品推荐
相关产品推荐

