r - 按 r 中 data.table 中的列和行分组

标签 r data.table

我对 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.tabledcast 应该是高效的。

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/

相关文章:

R循环/lapply,使用group by进行累计总计

r - data.table fread 如何忽略空行

r - Windows R 的 Kerberos 身份验证

read.csv 将空字符列转换为 NA

r - 在 R 函数内使用 data.table 的最佳方法是什么?

sql - 有效地合并匹配一个变量或另一个变量的两个数据集

r - 如何在给定的指定区域生成随机形状。(R语言)?

r - 如何将数据转换为边列表

R XML - 将父节点和子节点组合成数据框

r - 如何使用ggplot2绘制NA间隙