【问题标题】:R: lubridate with ts() gives wrong dateR:用 ts() 润滑给出错误的日期
【发布时间】:2020-11-10 12:39:00
【问题描述】:

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

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

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

是否有明显的遗漏或我下载的数据或lubridate 有错误?

【问题讨论】:

    标签: r time-series lubridate quantmod


    【解决方案1】:

    试试

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

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

    【讨论】:

    • 我得到了 TRUE 并且更改为 05 也有效。除了查看环境之外,我还有什么方法可以检查我的时间序列从哪里到哪里?
    • 回想一下,在您的assets 中,日期是一个数字对象,其中日期表示为其年份的一部分。 range(time(assets)) 为您提供该格式的日期范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多