我有多组时间序列数据,希望帮助找出将它们放入 R 并使用 R 进行分析的最佳方法。我对 data.table 非常熟悉,但对 R 不太熟悉ts
支持时间序列分析的类。
我特别想知道如何使用ts http://stat.ethz.ch/R-manual/R-patched/library/stats/html/ts.html在这个情况下或者如果有限制ts
(例如聚合一组问题ts
对象),使其适合在这里使用。
The Data
有大量的商店。对于每个商店,我每天都有多个数据点,例如以美元计的销售额、以交易数计的销售额以及商店流量(进入商店的人数)。 (实际上我拥有的是一个表,其中包含存储 ID、日期以及该存储和日期的数据列。)
我一直在做的是使用每个商店一行的 data.table,将商店的数据聚合到几个月中,并将每个月的值存储在单独的命名列中(例如 jan14_dollars、feb14_dollars...),但这很笨拙出于很多原因,特别是当我想查看几周或几个季度时。
我认为处理这个问题的正确方法是使用类型列ts
所以每一行就是store, dollars_ts, transactions_ts, traffic_ts
但是(a)如何将数据转换为该格式以及(b)可以ts
像整数一样组合才能得到我想要的结果?如果您只能回答(a)或(b),但不能同时回答(a)或(b),请尽量回答。
我无法提供真实的数据集,但您可以生成一个随机数据集来使用,如下所示:
require("data.table")
storeData <- CJ(store = toupper(letters), date = seq(as.Date('2012-01-01'), as.Date('2014-01-01'), by="day"))
storeData$dollars = sample(100:100000, nrow(storeData), replace = TRUE)/100
storeData$transactions <- sample(0:1000, nrow(storeData), replace = TRUE)
storeData$traffic <- storeData$transactions + sample(0:1000, nrow(storeData), replace = TRUE)
head(storeData)
store date dollars transactions traffic
1: A 2012-01-01 48.60 409 990
2: A 2012-01-02 996.89 36 428
3: A 2012-01-03 69.35 647 1103
4: A 2012-01-04 334.56 953 973
5: A 2012-01-05 692.99 958 1753
6: A 2012-01-06 973.32 724 1086
分析
我想回答诸如“有多少商店的销售额实现正增长?”之类的问题。以及“美元/交易的变化与流量的变化之间是否存在关系?”并将数据按时间段分类并比较不同时间段的答案(例如今年第一季度与去年第一季度)。
可以用以下方式回答此类问题吗ts http://stat.ethz.ch/R-manual/R-patched/library/stats/html/ts.html?如果是这样,我如何将此数据放入适当的列集中,或者是否有其他结构data.table
我应该用?
请展示如何组织数据,以及如何使用数据回答示例问题“与 2013 年 1 月相比,2014 年 1 月有多少商店的美元销售额出现正增长?”以及“过去 3 个月每笔交易的美元总体趋势如何?”