我有多个时间序列,需要将它们放在一个data.frame中

时间:2016-08-02 08:55:17

标签: r

我在R中有大约30个单独的时间序列。我想将它们全部放在一个大型数据集中,但似乎无法做到这一点。

我使用了以下代码,但它不起作用。所有我的时间序列都是名字ts1,ts2等。如果我要做df< - data.frame(ts1,ts2)这个单独工作但不是如果我这样输入

for(i in 2:nrow(deal)) 
{ 
temp <- paste("ts",i,sep="")
mystring <- paste(mystring,temp,sep=",") 
} 
df <- data.frame(mystring)

1 个答案:

答案 0 :(得分:0)

鉴于df <- data.frame(ts1,ts2)有效,以下内容应该有效:

N <- nrow(deal)   # or whatever number of time series you have
df <- data.frame(sapply(1:N, function(i) eval(parse(text=paste("ts",i,sep="")))))

注意:

  1. sapply循环从1N的序列并应用函数。函数的结果作为列被收集到矩阵中,然后矩阵被强制转换为数据帧。
  2. 应用的函数构造字符串以获取i时间序列的名称,并使用this SO answer来评估字符串中的表达式。这将返回时间序列。
  3. 希望这有帮助。