我在以下日期框架上有问题,我想将" 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
时间序列中的日期是在连续的时间基础上创建的。但是,我没有这样的数据框数据。我该如何解决?
您拥有的输出仅是由于对象ts
的print
规范。实际上,您不必担心是否必须将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)
我希望它对您有帮助。