循环中的子集

时间:2017-09-16 06:52:29

标签: r dataframe subset

我在日期,产品类别,商店和数量上有一张表。大约有100种产品类型(产品1到产品100)和30种商店类型(商店1到商店30)。对于每个产品 - 商店组合,我需要准备一个时间序列模型。能否帮助我快速准备这些子集的产品 - 商店组合。提前致谢!示例数据包含在下面。

datekey    Product       Store   Quantity
20150320    Product29   Store24  1500000
20150110    Product20   Store17  941266 
20160331    Product29   Store12  770000
20160331    Product20   Store25  130000
20150503    Product84   Store20  97117
20160331    Product20   Store6   13000
20160331    Product29   Store21  200
20160331    Product29   Store28  193
20160331    Product29   Store22  180
20160331    Product20   Store23  171
20160331    Product29   Store9   165
20160331    Product9    Store23  160
20160331    Product29   Store6   139
20160331    Product20   Store17  134

#This what I have tried for one column, but need help for multiple cols
stest <- split(sales, sales$Store, drop = FALSE)

1 个答案:

答案 0 :(得分:2)

您可以使用tidyrunite两列

df %>% unite(joined, c(Product, Store))

# datekey            joined Quantity
# 1  20150320 Product29_Store24  1500000
# 2  20150110 Product20_Store17   941266
# 3  20160331 Product29_Store12   770000
# 4  20160331 Product20_Store25   130000
# 5  20150503 Product84_Store20    97117
# 6  20160331  Product20_Store6    13000
# 7  20160331 Product29_Store21      200
# 8  20160331 Product29_Store28      193
# 9  20160331 Product29_Store22      180
# 10 20160331 Product20_Store23      171
# 11 20160331  Product29_Store9      165
# 12 20160331  Product9_Store23      160
# 13 20160331  Product29_Store6      139
# 14 20160331 Product20_Store17      134

您的样本数据中有14个不同的产品/商店组。

df %>% unite(joined, c(Product, Store)) %>% n_distinct(.$joined)

# [1] 14

按组(joined)运行时间序列回归。如果您需要在分析后将其拆分,请使用separate