关于时间序列:R:如何将每日数据的小标题下采样为每周星期一的数据?

R: How to downsample a tibble with daily data to weekly Mondays data?

在使用 Pandas 的 Python 中,您可以使用 df.resample('W-MON').ffill() 来完成。 R 中的等价物是什么?

到目前为止,我有这个,但是它使用周末数据重新采样,并且代码已经看起来不太可读:

1
2
3
4
downsample_weekly <- function(tbl, DATE) {
  ds_ts <- xts(tbl, order.by = as.POSIXct(tbl$DATE))
  as_tibble(ds_ts[endpoints(ds_ts,"weeks")])
}


您想在某个数据字段中提取对应于星期一的小标题行吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
library(tidyverse)
library(lubridate)

# Example data
foo <- data_frame(Date = seq(ymd("2018-01-01"), ymd("2018-01-31"), length.out = 31),
                  Bar = runif(31))

foo %>%
  filter(weekdays(Date) =="Monday")

#> # A tibble: 5 x 2
#>   Date         Bar
#>   <date>     <dbl>
#> 1 2018-01-01 0.865
#> 2 2018-01-08 0.119
#> 3 2018-01-15 0.778
#> 4 2018-01-22 0.440
#> 5 2018-01-29 0.550

不清楚你的代码为什么使用 xts.