我在以下日期范围内遇到问题,我想将“ 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
时间序列中的日期是在连续的时间基础上创建的。但是,我没有那样的数据帧数据。我该如何解决?
答案 0 :(得分:0)
您的输出仅取决于对象print
的{{1}}规范。实际上,您不必担心是否必须将ts对象放入data.frame中,因为实际上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
,其中导致您认为输出是一个矩阵,但是如果您使用othe选项查看ts,则不是。
calendar=T
我希望它将对您有所帮助。