r - 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 的方法?)
解决方案
我们可以dcast
使用data.table
library(data.table)
dcast(setDT(Df1), ID ~ month, value.var = 'sales')
推荐阅读
- docker - 我正在使用`eureka docker container`,但它给出了错误
- ruby - 当我用 ruby 编写代码进行自动化测试时如何修复小黄瓜中的解析器错误
- c# - 如何在最顶层的 NSPanel 中获取键盘事件?
- php - 如何在 Intranet 上使用 Windows 身份验证自动登录网站?
- .htaccess - .htaccess 问题和控制台问题 --prod build in angular 6 app
- amazon-redshift - [Amazon](500310) 无效操作:尚不支持此类IN/NOT IN查询;
- post - 使用实体框架向与 Web api 中的主键和外键关联的数据库发布请求
- css - 重复的字体大小属性
- r - 多个垂直阴影区域
- angular - 角度材料保存和恢复pageSize到localStorage