R-创建一个时间序列对象



我在以下日期框架上有问题,我想将" vendas"列传递给类型时间序列的对象。

head(base3)
# A tibble: 6 x 4
# Groups:   trimestre, ano [6]
  trimestre   ano Código.do.Produto vendas
      <int> <dbl> <fct>              <dbl>
1         3  2009 S3                  7300
2         1  2010 S3                  7900
3         2  2010 S3                 50700
4         3  2010 S3                 20900
5         2  2011 S3                 12000
6         3  2011 S3                  2300

我正在尝试:

baseaux<-base3%>%filter(ano==min(base3$ano))
ts<-ts(base3[,4],start=c(min(base3$ano),min(baseaux$trimestre)),frequency=4)

我得到了:

  Qtr1   Qtr2   Qtr3   Qtr4
2009                 7300   7900
2010  50700  20900  12000   2300
2011  15000  35000  30000      0
2012  10300  35000  50000  60000
2013  90000 111400  80000  30900
2014  46400  21700  32300   2500
2015   1800   5000 300000  38000
2016  42000  68000  27900 229500
2017  12100 243000 180300 283000
2018 137000 

时间序列中的日期是在连续的时间基础上创建的。但是,我没有这样的数据框数据。我该如何解决?

您拥有的输出仅是由于对象tsprint规范。实际上,您不必担心是否必须将TS对象放入数据中。框架,因为实际上ts对象是向量。ts对象仅在指定的情况下才是矩阵,并且如果您想要一个多个时间序列,例如每年一个。上面的代码对我来说很好:

df <- data.frame(trimestre = c(3, 1, 2, 3),
                 ano = c(2009, 2010, 2010, 2010),
                 Código.do.Produto = "S3",
                 vendas = c(7300, 7900, 50700, 20900))
baseaux <- df %>% filter(ano==min(ano))
ts <- ts(df[,4],start=c(min(df$ano),min(baseaux$trimestre)), frequency=4)
df$ts <- ts

此代码只是向您展示ts如何创建它是向量查看str的结果,并且您会看到print默认选项是calendar=T,这使您认为该输出是矩阵,但如果您不是,则不是使用OTHE选项查看TS。

print(ts)
print(ts, calendar = F)
str(ts)

我希望它对您有帮助。

相关内容

最新更新