r - 具有每周季节性的每日数据的 ts() 对象具有错误的日期索引
问题描述
这是每日数据的示例数据集:
df_so <- structure(list(date = structure(c(16953, 16954, 16955, 16956,
16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965,
16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974,
16975, 16976, 16977, 16978, 16979, 16980), class = "Date"),
valor = c(42430, 34567, 28485, 10675, 10168, 40799, 38640, 41542, 37668, 36769,
8670, 10567, 51198, 42259, 44858, 41091, 41320, 10966, 7902,
35748, 39939, 37009, 34137, 32406, 16680, 11858, 36763, 33702
)),
class = "data.frame", row.names = c(NA, -28L))
我已经正确定义了日期向量,如下面的输出所示:
> df_so$date
[1] "2016-06-01" "2016-06-02" "2016-06-03" "2016-06-04" "2016-06-05" "2016-06-06" "2016-06-07" "2016-06-08" "2016-06-09"
[10] "2016-06-10" "2016-06-11" "2016-06-12" "2016-06-13" "2016-06-14" "2016-06-15" "2016-06-16" "2016-06-17" "2016-06-18"
[19] "2016-06-19" "2016-06-20" "2016-06-21" "2016-06-22" "2016-06-23" "2016-06-24" "2016-06-25" "2016-06-26" "2016-06-27"
[28] "2016-06-28"
但是, ts() 对象不维护该时间索引。相反,该功能搞砸了:
> ts_so <- ts(df_so$valor, frequency = 7, start = lubridate::decimal_date(min(df_so$date)))
> time(ts_so)
Time Series:
Start = 2016.41530054645
End = 2020.27244340359
Frequency = 7
[1] 2016.415 2016.558 2016.701 2016.844 2016.987 2017.130 2017.272 2017.415 2017.558 2017.701 2017.844 2017.987 2018.130
[14] 2018.272 2018.415 2018.558 2018.701 2018.844 2018.987 2019.130 2019.272 2019.415 2019.558 2019.701 2019.844 2019.987
[27] 2020.130 2020.272
我尝试了另一种定义 ts 对象的方法,它给出了另一个时间索引,但仍然大错特错:
> ts_so <- ts(df_so$valor, frequency = 7, start = c(2016, lubridate::yday(min(df_so$date))))
> time(ts_so)
Time Series:
Start = c(2037, 6)
End = c(2041, 5)
Frequency = 7
[1] 2037.714 2037.857 2038.000 2038.143 2038.286 2038.429 2038.571 2038.714 2038.857 2039.000 2039.143 2039.286 2039.429
[14] 2039.571 2039.714 2039.857 2040.000 2040.143 2040.286 2040.429 2040.571 2040.714 2040.857 2041.000 2041.143 2041.286
[27] 2041.429 2041.571
如何确保 ts() 对象为频率 = 7 的每日数据维护正确的时间索引?
解决方案
推荐阅读
- iis - 所有站点的“/api/”文件夹的 IIS 反向代理/全局 URL 重写
- parsing - Haskell:为什么在执行数据评估时不执行我的算术评估函数?
- salesforce - SalesForce SOAPUI 登录调用失败并出现 SocketTimeoutException
- r - 为 R 安装拨浪鼓时遇到问题
- java - 如何使用 view.GONE 处理 ConstraintLayout 水平和垂直
- oauth - 如何为 azure vm 生成 OAuth
- c++ - 函数没有返回任何值 | C++
- javascript - 仅使用已分配关键帧的纯 CSS 在元素上触发动画
- django - /create_order/ __str__ 处的 TypeError 返回非字符串(NoneType 类型)
- java - 使用Java从JSON文件中删除一定范围内的键/值对