2017-02-15 64 views
2
Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
2015 75 74 60 57 67 131 299 138 329 333 307 213 
2016 141 174 72 219 139 163 160 82 150 177 138 138 

上面是我正在處理的數據。我已經將數據導入到R中,最初這是作爲data.frame導入的。將數據幀轉換爲時間序列

使用xlsx

class(test) 
"data.frame" 

導入從xlsx文件中的數據我想這個類轉換爲ts。我嘗試了一些現有的方法,但我仍然無法完成。

回答

5

像這樣的事情似乎工作:

ts(df[-1], frequency = 1, start = df[1, 1], end = df[2, 1]) 

輸出:

Time Series: 
Start = 2015 
End = 2016 
Frequency = 1 
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
2015 75 74 60 57 67 131 299 138 329 333 307 213 
2016 141 174 72 219 139 163 160 82 150 177 138 138 
+1

@lmo一個非常好的問題確實。謝謝! – LyzandeR

+0

感謝您的更新。這種方法工作得很好 –

+0

你非常歡迎@PraveenRKaruppannan。高興地幫助:) – LyzandeR

2

你可以做

test = ts(unlist(df[,-1]), start = df[1,1], frequency = ncol(df[,-1])) 

test 
#  Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
#2015 75 141 74 174 60 72 57 219 67 139 131 163 
#2016 299 160 138 82 329 150 333 177 307 138 213 138 

class(test) 
#[1] "ts" 

#Obtain the frequency 
unique(cycle(test)) 
#[1] 1 2 3 4 5 6 7 8 9 10 11 12 

#Obtain the years 
unique(floor(time(test))) 
#[1] 2015 2016 
+1

這段代碼確實很好。 –

相關問題