【发布时间】:2020-04-20 21:24:48
【问题描述】:
目前我有一个时间序列,其中 y 值 = 商品数量,x 值 = 日期 + 购买时间(例如,在 2020 年 1 月 1 日 13:45 有人购买了 5 件商品)。我的数据看起来像下面的图像加上一些噪音(但让我们想象它看起来像一个方形信号):
但是,每个矩形的宽度可能会有所不同。我想要做的是在存在购买时获得 x 轴上的最小值和最大值(例如,在图中可能存在值 0.2 和 0.4 之间的购买,所以这两个值将是我的最小值和最大值,但在我的情况下是日期/时间)。但是在这种情况下,会有多个长度不同的块,我只想提取该块的最小值/最大值,但由于我是 R 新手,所以我没有想到这样做的方法。有没有人可以引导我找到解决此问题的可能方法?
一个非常简单的例子如下:
purchase.dates <- c("01/01/2020 20:00", "01/01/2020 20:10", "01/01/2020 20:22", ..., "01/01/2020 23:59", "01/02/2020 00:01", "01/02/2020 00:15", "01/02/2020 08:00", "01/02/2020 08:03", "01/02/2020 08:15")
从这个例子中我想获得 2 个区块(实际上,当我考虑更多天时,我希望得到更多的区块,但在这种情况下只有 2 个不同的天):
block1 = c("01/01/2020 20:00", "01/01/2020 20:10", "01/01/2020 20:22", ..., "01/01/2020 23:59", "01/02/2020 00:01", "01/02/2020 00:15")
block2 = c("01/02/2020 08:00", "01/02/2020 08:03", "01/02/2020 08:15")
【问题讨论】:
-
你能展示一个可重复的小例子和预期的输出
-
@akrun,感谢您的观察。我忘了包括一个我想要的玩具示例
-
我认为
rleid会成为你的朋友
标签: r split time-series