使用r中的ts()转换为时间序列



下午好

我有一个时间序列

v2<-c(12,13,15,17,18,12,11,12)

从1996年7月到1997年10月,仅在7月至10月之间的几个月

当我尝试使用

转换为时间序列时
v2.ts<-ts(v2, frequency=12, start=c(1996,7), end=c(1997,10))

它给我带来了这个结果

    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1996                        12  13  15  17  18  12
1997 11  12  12  13  15  17  18  12  11  12 

我可以用哪些参数使其像:

     Jul Aug Sep Oct 
1996  12  13  15  17
1997  18  12  11  12

事先感谢您的帮助

ts系列必须定期间隔,但是所显示的输出的点相距一个月,除了第二年的十月至7月之间,因此它不具有该形式。

有几个软件包可以代表不规则间隔的串联。使用动物园软件包,将这样做:

library(zoo)
z <- as.zoo(v2.ts)
z[cycle(z) %in% 7:10]
## Jul 1996 Aug 1996 Sep 1996 Oct 1996 Jul 1997 Aug 1997 Sep 1997 Oct 1997 
##      12       13       15       17       18       12       11       12 

如果您不在寻找时间序列,而只是带有指示元素的矩阵,则:

tapply(c(v2.ts), list(floor(time(v2.ts)), cycle(v2.ts)), c)[, 7:10]
##       7  8  9 10
## 1996 12 13 15 17
## 1997 18 12 11 12

最新更新