R tsibble——当没有隐式间隙时,如何绕过隐式间隙
我对TSIBLE软件包不熟悉。我有每月的数据,我强迫一个TSIBLE使用寓言包。我有几个问题R tsibble——当没有隐式间隙时,如何绕过隐式间隙,r,time-series,tsibble,fable,R,Time Series,Tsibble,Fable,我对TSIBLE软件包不熟悉。我有每月的数据,我强迫一个TSIBLE使用寓言包。我有几个问题 看起来索引变量(来自我的测试)不是类日期,即使我应用了 lubridate的ymd功能 has_gaps函数返回FALSE,但当我对数据建模时,得到“.data”包含的错误 “隐含的时间间隔” 任何帮助都将不胜感激。看起来像,因为\u tsible无法正确识别YearMonth列中的间隔,因为它是日期类对象。帮助页面的“索引”部分隐藏了可能存在的问题: 对于规则间隔的tbl,必须选择索引表示。例如,
- 看起来索引变量(来自我的测试)不是类日期,即使我应用了 lubridate的ymd功能李>
- has_gaps函数返回FALSE,但当我对数据建模时,得到“.data”包含的错误 “隐含的时间间隔”
任何帮助都将不胜感激。看起来像
,因为\u tsible
无法正确识别YearMonth
列中的间隔,因为它是日期
类对象。帮助页面的“索引”部分隐藏了可能存在的问题:
对于规则间隔的tbl,必须选择索引表示。例如,月度数据应该对应于yearmonth或zoo::yearmon创建的时间索引,而不是Date或POSIXct
就像这段摘录建议您可以使用yearmonth()
绕过这个问题。但这首先需要一点字符串操作,以将其转换为正确解析的格式
test_ts <- test %>%
mutate(YearMonth = gsub("(.{2})01$", "-\\1", YearMonth) %>%
yearmonth()
) %>%
as_tsibble(
index = YearMonth
)
测试%
突变(YearMonth=gsub(“({2})01$”,“-\\1”,YearMonth)%>%
年月日
) %>%
易如反掌(
指数=年-月
)
现在,模型应该运行无错误!不确定为什么
有\u gaps()
测试在您的示例中表示一切正常…您有一个每日索引,但您想要一个每月索引。最简单的方法是使用tsibble::yearmonth()
函数,但首先需要将日期转换为字符
库(dplyr)
图书馆(TSIBLE)
测试%
as_tsible(索引=年-月)
非常感谢您的帮助。请注意,一天的间隔适用于以日期类表示的月度数据。这是因为月份的天数是不规则的,所以当用每日测量值表示时,最大的公分母是一天。非常感谢。这很有帮助。
Warning messages:
1: 1 error encountered for snaive
[1] .data contains implicit gaps in time. You should check your data and convert implicit gaps into explicit missing values using `tsibble::fill_gaps()` if required.
test_ts <- test %>%
mutate(YearMonth = gsub("(.{2})01$", "-\\1", YearMonth) %>%
yearmonth()
) %>%
as_tsibble(
index = YearMonth
)