R:用 ts() 润滑给出错误的日期

R: lubridate with ts() gives wrong date

我正在处理来自 FRED 的一些数据,我尝试将数据转换为每周观察的时间序列。我使用以下代码:

library(quantmod)
library(lubridate)
getSymbols('WALCL',src='FRED')
assets <- ts(WALCL, frequency = 365.25/7, end = decimal_date(ymd("2020-07-15")))

但是结束日期始终设置为 2021 年而不是 2020 年 7 月 15 日,开始日期设置为 2003 年而不是 2002 年。当我改为指定开始日期时,也会发生同样的事情。当我尝试同时指定两者时,出现错误 Error in attr(data, "tsp") <- c(start, end, frequency) : invalid time series parameters specified.

我是否遗漏了一些明显的东西,或者我下载的数据或 lubridate 是否有错误?

尝试

decimal_date(ymd("2020-07-15")) == max(time(assets))

你会得到安慰TRUE。在您的环境中,您看到的是 2021 年,但我认为这是一个四舍五入的问题。如果你用 end = decimal_date(ymd("2020-05-15")) 构建你的时间序列,2021 年就消失了,对吧?