【发布时间】:2022-01-21 17:43:53
【问题描述】:
我在R 工作,我有一些时间序列数据,其中相关时间是日期范围 --- 即,每一行都有开始日期和结束日期,并且该记录指定了该期间的结果。我希望能够在R 中以适当的方式表示此对象,并将其与具有特定日期的其他时间序列合并。在合并的情况下,我希望我的第一个时间序列(使用日期范围的那个)中的每条记录都与该范围内的日期相匹配,如果有两个或范围内的更具体的日期。这是我希望它使用模拟数据执行的一个简单示例:
#Time series with a date-range
TIME.SERIES1
Start End Value
2018-01-01 2018-01-31 80.6
2018-02-01 2018-02-28 140.5
2018-03-01 2018-03-31 122.1
2018-04-01 2018-04-30 108.5
2018-05-01 2018-05-31 96.0
2018-06-01 2018-06-30 103.3
#Time series using specific dates
TIME.SERIES2
Date Staff
2018-01-15 551
2018-02-14 606
2018-05-18 640
2018-06-02 635
2018-07-15 633
#Merge these using left-join of TIME.SERIES1 and TIME.SERIES2
[some merge command]
Start End Value Staff
2018-01-01 2018-01-31 80.6 551
2018-02-01 2018-02-28 140.5 606
2018-03-01 2018-03-31 122.1 NA
2018-04-01 2018-04-30 108.5 NA
2018-05-01 2018-05-31 96.0 640
2018-06-01 2018-06-30 103.3 635
我知道您可以在 SQL 中相当轻松地进行这种类型的合并,但我不确定如何在 R 中进行。我之前使用过xls包进行时间序列分析,但不知道它是否能完成我想做的事情。这个包似乎允许我指定一个日期作为索引,但不是一个日期范围。同样,它似乎允许我在一个日期合并两个时间序列对象,但我不确定如何根据日期范围进行合并(以上面显示的方式)。
问题:R 中的时间序列工具能否处理时间索引为日期范围而不是特定日期的对象(即,可以您有一个包含开始时间和结束时间的索引)?我们如何将具有日期范围的数据与具有单个日期的日期合并?
【问题讨论】:
-
您的数据有多大?
-
@kybazzi:虽然上面的例子很小,但实际上我的数据集非常大(几百万行)。