【问题标题】:Converting zoo object into a weekly time series将动物园对象转换为每周时间序列
【发布时间】:2021-03-05 16:51:56
【问题描述】:

我正在使用 R 编程语言构建时间序列。 我有一个如下的动物园对象:

我想把它转换成每周的时间序列数据进行分析并输入以下代码

tt2<-as.ts(zz,freq=365.25/7,start=decimal_date(ymd("2018-01-01")))
tt2[is.na(tt2)]<-0

但是,我得到以下输出:

Time Series:
Start = 17538 
End = 18532 
Frequency = 0.142857142857143

虽然我希望看到输出符合以下内容:

Time Series:
Start = c(2018,2) 
End = c(2020,40)
Frequency = 52

或者因为我们可以同时拥有 53 周和 52 周,例如:

Time Series:
Start = 1991.0848733744 
End = 2005.34360027378 
Frequency = 52.1785714285714 

我也尝试过以下操作,

library(zoo)    
zz <- read.zoo(data, split = 1, index = 2,FUN=as.week")
   

并将以下内容转换为格式:

但是,如果我尝试将其转换为时间序列,我会收到以下输出:

Time Series:
Start = 2505 
End = 2647 
Frequency = 1 
  [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [40] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [79] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[118] NA NA NA NA NA NA NA NA NA 64 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

我很想收到您对此的想法

【问题讨论】:

  • 请更新标签以显示您使用的语言/包。

标签: r time-series artificial-intelligence data-science forecasting


【解决方案1】:

我想使用 tsibble 更容易将您的系列从每日频率转换为每周频率。最后,您可以再次更改为 zoo 对象。

这是我所做的简短代码

数据

# A tibble: 14 x 2
   Date            Y
   <date>      <dbl>
 1 2020-01-01 0.176 
 2 2020-01-02 0.521 
 3 2020-01-03 0.348 
 4 2020-01-04 0.801 
 5 2020-01-05 0.963 
 6 2020-01-06 0.0723
 7 2020-01-07 0.638 
 8 2020-01-08 0.842 
 9 2020-01-09 0.298 
10 2020-01-10 0.902 
11 2020-01-11 0.943 
12 2020-01-12 0.884 
13 2020-01-13 0.266 
14 2020-01-14 0.789 

   library(tsibble)
    library(tidyverse)
    library(zoo)
    data$Date<-as.Date(data$Date)
    data.w<-data%>%as_tsibble(index=Date)%>% index_by(year_week = ~ yearweek(.)) %>% summarise(weekly = sum(Y, na.rm = TRUE))
    data.z<-zoo(data.w)

> data.z
  year_week weekly  
1 2020 W01  2.809756
2 2020 W02  4.579329
3 2020 W03  1.055690

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2020-12-23
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多