R中的时间序列方式

时间:2011-07-15 03:02:44

标签: r time-series

我对R很新,只是写了这个来获取一个文件中多个时间序列的均值:

compiled<-read.table("/Users/Desktop/A/1.txt", header=TRUE)

z<-ncol(compiled)

comp_df<-data.frame(compiled[,2:z])

indmean<- rowMeans(comp_df)

每个文件中的数据如下所示:

Time A1 A2 A3 A4 A5

1 0.1 0.2 0.1 0.2 0.3


2 0.2 0.3 0.4 0.2 0.3

...

它工作正常,但我希望将它应用于许多相同性质的文件,每个文件中的时间序列数量不同。如果有人可以就如何改进上述方法提出建议,那就太好了。提前谢谢!

1 个答案:

答案 0 :(得分:3)

您可以按照上面的步骤进行操作 - 将它们汇总到一个函数中,并将lapply覆盖在包含要对其进行此分析的文件名称的向量上。根据您的需要,将后续分析中的数据读取分开可能有意义,也可能没有意义,这样您就可以将数据保存在工作环境中。为了简单起见,我假设您不需要后面的数据。

一般步骤如下:

1)创建要处理的文件的向量。类似的东西:

filesToProcess <- dir(pattern = "yourPatternHere")

2)将上面的代码转换为函数

FUN <- function(dat){   
  compiled<-read.table(dat, header=TRUE)
  z<-ncol(compiled)
  comp_df<-data.frame(compiled[,2:z])
  indmean<- rowMeans(comp_df)
  return(indmean)
}

3)lapply FUNction到您的文件列表并分配一个新变量:

out <- lapply(filesToProcess, FUN)

4)给out一些名字,这样你就知道了什么:

names(out) <- filesToProcess

您现在有一个命名列表,其中包含您在filesToProcess中列出的所有文件的rowMeans。