2015-11-02 50 views
1

我正在嘗試使用「季節性」套件對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

我試圖找出如何有效地把我的100系列從我.csv文件,將它們轉換爲R中的ts,並將它們放入列表中進行季節性調整。

任何幫助將不勝感激!我是R新手,仍在努力學習它的數據處理和轉換技術。然後

回答

0

可以使用lapply()得到解決,以同樣的方式作爲季節調整問題的第一部分,例如:

data <- read.csv("sa.csv") 
datalist <- lapply(data, function(t) ts(t, start=c(1992, 1), end=c(2014, 4),frequency=4)) 

季節性調整應作爲問題描述的工作。

相關問題