Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R tsibble——当没有隐式间隙时,如何绕过隐式间隙_R_Time Series_Tsibble_Fable - Fatal编程技术网

R tsibble——当没有隐式间隙时,如何绕过隐式间隙

R tsibble——当没有隐式间隙时,如何绕过隐式间隙,r,time-series,tsibble,fable,R,Time Series,Tsibble,Fable,我对TSIBLE软件包不熟悉。我有每月的数据,我强迫一个TSIBLE使用寓言包。我有几个问题 看起来索引变量(来自我的测试)不是类日期,即使我应用了 lubridate的ymd功能 has_gaps函数返回FALSE,但当我对数据建模时,得到“.data”包含的错误 “隐含的时间间隔” 任何帮助都将不胜感激。看起来像,因为\u tsible无法正确识别YearMonth列中的间隔,因为它是日期类对象。帮助页面的“索引”部分隐藏了可能存在的问题: 对于规则间隔的tbl,必须选择索引表示。例如,

我对TSIBLE软件包不熟悉。我有每月的数据,我强迫一个TSIBLE使用寓言包。我有几个问题

  • 看起来索引变量(来自我的测试)不是类日期,即使我应用了 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
  )