【发布时间】:2017-02-05 03:13:56
【问题描述】:
我有如下数据:-
Customer.Name Posting.Date SKU Sales.Amount($)
A 20150124 SKU1 12345
B 20150125 SKU2 22345
A 20150124 SKU3 52345
A 20150125 SKU4 55345
C 20150126 SKU6 62345
B 20150127 SKU7 72345
C 20150126 SKU8 72945
我正在尝试将其转换为以下不带列名的结构:- 临时数据结构:-
A 20150124 SKU1 SKU 3
A 20150125 SKU4
B 20150125 SKU2
C 20150126 SKU6 SKU8
B 20150127 SKU7
临时输出按发布日期排序,作为客户级别交易的一部分购买的每个 SKU(由客户名称 + 发布日期标识)都需要转换为列。
最终数据结构(如下)只需要包含在交易中购买的 SKU,其中客户名称和过帐日期列已从上述临时输出中删除。
SKU1 SKU3
SKU4
SKU2
SKU6 SKU8
SKU7
我已尝试使用以下代码获取最终结构,但出现错误。
library(dplyr)
library(tidyr)
Dataset2 <- Data %>%
group_by(Customer.Name, Posting.Date) %>%
summarise(SKU=toString(unique(SKU))) %>%
select(Customer.Name, Posting.Date,SKU) %>%
spread(Customer.Name,SKU,drop=FALSE)
我得到的错误是
错误:每个变量都必须命名。问题变量:2
您能指导一下如何解决这个问题吗?
【问题讨论】:
-
最终需要的数据结构如下:
-
请从列名中删除
($)。对我来说效果很好