努力学习 R,但似乎在 SQL 中非常简单的事情上遇到了障碍。
问题如下:我有 2 个表:表 A:由“初始订单”组成。这是我们与客户的第一次接触。表B:由“二级订单”组成,即与初始订单相关的后续订单。
存在一对多的关系。表 A 具有以下列:
- 订单号
- 订购日期
- 零件号
- 客户ID
表 B 具有以下列:
- 订单号
- 订购日期
- 零件号
- 初始订单号
假设每个订单的数量始终为 1,但是对于 A 中的每个初始订单,我可以在 B 中有多行。
我现在要做的是合并这两个表,但我想要一个摘要,按 B 的零件编号,链接到 A。
数据看起来像这样 A:
Order_Num Order_date Part_Num Cust_ID
100 1/1/2013 1001 1111
101 1/15/2013 1002 1111
乙:
Order_Num Order_date Part_Num Init_Order_Num
200 2/1/2013 2001 100
201 3/15/2013 2002 100
202 4/18/2013 2002 100
203 5/1/2013 2002 101
最后我想看到的是这样的:
Order_Num Order_date Part_Num Cust_ID Count_Part_2001 Count_Part_2002
100 1/1/2013 1001 1111 1 2
101 1/15/2013 1002 1111 1
我在这里查看了各种解决方案,包括使用 ddply、count、summarise、aggregate 等,但似乎都没有。该数据集有大约 260 万个初始订单和 40 万个二级订单。尝试使用 ddply,即使我将数据集减少到 1000 个二级订单仍然会导致内存不足错误(我的机器中有 16GB)。
在 SQL 中,我将使用计数(订单号),按次要上的零件号分组,然后将其与初始订单号上的初始订单表左连接(也将进行透视以创建“Count_Part_2001”和“Count_Part_2002”列。Pivot 的工作方式与 R 中的 melt() 命令相反)。