首页 > 解决方案 > R data.table - lapply的替代品?

问题描述

我正在处理一个销售数据集,我需要重组一个如下所示的 data.table:

ID sales month
23 657   01
67 889   01
.
.
.
23 238   12

为以下格式:

ID 01  02  03  ... 12
23 657 445 223 ... 238
67 889 990 765 ... 555
.
.
.

我目前拥有的代码提供了所有唯一 ID 的列表,该函数获取所有具有匹配 ID 的行,创建一个包含一行的数据表,并使用 rbindlist 将其连接到主重组表。

这适用于少量的唯一 ID(~600),但是当 ID 的数量很大时,它非常慢且不可行。有没有更有效的方法来做到这一点?(特定于 data.table 的方法?)

标签: rdata.table

解决方案


我们可以dcast使用data.table

library(data.table)
dcast(setDT(Df1), ID ~ month, value.var = 'sales')

推荐阅读