我对 r 很陌生,所以很抱歉,如果这是基本的(我确信是),但我无法在任何地方找到答案。
我有一个数据集,显示单个产品的销售情况,大约有 500,000 行和 30 列,包括区域、销售金额和日期。我使用基本的 data.table 功能来基于单个组创建摘要,例如按日期的销售额和按地区的销售额(即 DT[,sum(Sales),by=Date]),如下所示:
Date Sales
12/1 50,000
12/2 70,000
12/3 40,000
还有
Region Sales
North 67000
East 60000
South 15000
West 22000
我想要做的是查看(例如)按地区和日期分割的销售额,例如:
12/1 12/2 12/3
North 10,000 15,000 12,000
East 5,000 25,000 30,000
South 2,000 3,000 10,000
West 6,000 7,000 9,000
我希望能够对文件中包含的所有日期执行此操作(因此我不需要每次针对不同的数据集和日期运行此操作时手动更改它)。这可以通过 data.table 或其他东西实现吗?
谢谢!
最佳答案
对于大型数据集,来自 data.table
的 dcast
应该是高效的。
dcast(DT, Region~Date, value.var="Sales", sum)
注意:在这里,我们假设“Sales”为numeric
类。从示例中显示的数据来看,数字之间有,
。因此,它可能是非数字的。如果是非数字,删除,
后转换为数字
DT[, Sales := as.numeric(gsub(",", "", Sales))]
然后进行dcast
关于r - 按 r 中 data.table 中的列和行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41178030/