【发布时间】:2022-01-06 14:28:17
【问题描述】:
我正在使用slider::slider_index() 在数据集上设置滚动时间窗口。这个想法是对属于时间窗口的所有点应用一个函数。
这是一个可重复的示例,用于获取属于连续 2 天的所有个体(1 个个体 = 数据框的 1 行)。
# packages
library(dplyr)
library(lubridate)
library(slider)
# dummy data
company <- tibble(
sales = c(2, 3, 1, 8, 4, 6, 2),
index = as.Date("2019-08-29") + c(0, 0, 1, 1, 1, 5, 6),
)
# what I have done so far
roll_index <- slide_index(company, company$index, ~ .x, .before = lubridate::days(1))
这给出了:
> roll_index
[[1]]
# A tibble: 2 x 2
sales index
<dbl> <date>
1 2 2019-08-29
2 3 2019-08-29
[[2]]
# A tibble: 2 x 2
sales index
<dbl> <date>
1 2 2019-08-29
2 3 2019-08-29
[[3]]
# A tibble: 5 x 2
sales index
<dbl> <date>
1 2 2019-08-29
2 3 2019-08-29
3 1 2019-08-30
4 8 2019-08-30
5 4 2019-08-30
[[4]]
# A tibble: 5 x 2
sales index
<dbl> <date>
1 2 2019-08-29
2 3 2019-08-29
3 1 2019-08-30
4 8 2019-08-30
5 4 2019-08-30
[[5]]
# A tibble: 5 x 2
sales index
<dbl> <date>
1 2 2019-08-29
2 3 2019-08-29
3 1 2019-08-30
4 8 2019-08-30
5 4 2019-08-30
[[6]]
# A tibble: 1 x 2
sales index
<dbl> <date>
1 6 2019-09-03
[[7]]
# A tibble: 2 x 2
sales index
<dbl> <date>
1 6 2019-09-03
2 2 2019-09-04
到目前为止一切顺利。问题是它并不完全符合我的预期。如您所见,有些数据是重复的:roll_index[[3]]、roll_index[[4]] 和roll_index[[5]] 是相同的。
我的理解是 slider::slide_index() 一个接一个地出现,即使多个人属于同一个索引值。
如何避免这些数据重复,因为当我使用实际数据时,它们往往会大大增加输出的大小?
【问题讨论】: