我有两个不同时间序列的数据框。我可以使用以下命令单独创建ts对象:
数据框:
Year Grocery_Stores Liquor
1 Feb-11 1953.8 216.8
2 Mar-11 2108.1 240.5
3 Apr-11 2062.3 244.4
4 May-11 2034.8 232.1
5 Jun-11 1988.6 223.6
6 Jul-11 2085.9 239.0
Ts_grocery <- ts(dataFeed$Grocery_Stores, frequency=12, start=c(2011,2))
Ts_Liquor <- ts(dataFeed$Liquor, frequency=12, start=c(2011,2))
我想将其绑定到我的VAR模型并为其创建一个多变量时间序列“ts”对象。我尝试了一些可能性,但它不起作用。我怎么能做一个“ts”对象? 提前谢谢。
答案 0 :(得分:2)
数据框到ts
如果问题是如何将datafeed
转换为"ts"
系列,那么:
ts(dataFeed[-1], start = c(2011, 2), freq = 12)
或将其读入动物园对象,然后使用"ts"
将其转换为as.ts
类(或根据您要执行的操作使用z
)。 FUN = as.yearmon
将索引转换为年/月,format
说明符%b
和%y
表示月份缩写和2位数年份。
library(zoo)
z <- read.zoo(dataFeed, FUN = as.yearmon, format = "%b-%y")
as.ts(z)
使用zoo的第二种方法具有从系列本身中删除起始值的优点。
绑定ts系列
如果问题是如何将两个"ts"
系列绑定在一起,那么:
cbind(Ts_Liquor, Ts_grocery)
注意:可重复形式的输入是:
Lines <- "Year Grocery_Stores Liquor
1 Feb-11 1953.8 216.8
2 Mar-11 2108.1 240.5
3 Apr-11 2062.3 244.4
4 May-11 2034.8 232.1
5 Jun-11 1988.6 223.6
6 Jul-11 2085.9 239.0"
dataFeed <- read.table(text = Lines, as.is = TRUE)
答案 1 :(得分:1)
试试ts.union(Ts_grocery, Ts_Liquor)
。这是你在google 时找到的第一个答案,你可以在r 中绑定几个时间序列,它似乎有效。