如何从一个文件/数据框创建多个时间序列?

时间:2015-11-02 18:24:56

标签: r

我尝试使用季节性'进行季节性调整超过100次系列。包。季节性包需要该系列是ts对象。我有一个.csv文件设置如下:

timeseriesA timeseriesB timeseriesC
obs1        obs1        obs1
obs2        obs2        obs2
.           .           .
.           .           .

完整文件包含100多列(如果更好的话,我也可以转置行和列)。这让我运行以下内容:

library(seasonal)

data <- read.csv("...sa.csv")  # read csv file 

#Create time series from vectors in data
TimeSeriesA <- ts(asd$ag, start=c(1992, 1), end=c(2014, 4),frequency=4) 
TimeSeriesB <- ts(asd$cons, start=c(1992, 1), end=c(2014, 4), frequency=4) 
TimeSeriesC <- ts(asd$mfg, start=c(1992, 1), end=c(2014, 4), frequency=4) 

datalist <- list(TimeSeriesA=ag, TimeSeriesB=cons,TimeSeriesC=mfg)

#seasonally adjust the time series in datalist

ll <- lapply(datalist, function(e) try(seas(e)))

is.err <- sapply(ll, class) == "try-error"
ll[is.err]

finalsa<-do.call(cbind, lapply(ll[!is.err], final))
finalsa

这给了我三个经季节性调整的系列,但我需要100个。

我试图弄清楚如何有效地从我的.csv文件中取出我的100系列,将它们转换为R中的ts,并将它们放入列表中进行季节性调整。

任何帮助将不胜感激!我是R的新手,仍在努力学习它的数据处理和转换技术。

1 个答案:

答案 0 :(得分:0)

问题的第一部分可以使用$scope.$watch(function($scope) { return mediaSources.getStorages(); }, function() { console.log('call'); }, true); 解决,方法与季节性调整相同,例如:

lapply()

季节性调整应按照问题中的描述进行。