2017-06-16 105 views
1

我基本上試圖對美國經濟衰退做一些計算。 我從FRED下載的數據,它看起來像這樣:二元向量的運行長度彙總(最小值,最大值,平均值)

library(quantmod) 
getSymbols("USREC",src="FRED") 

1754 2001-01-01  0 
1755 2001-02-01  0 
1756 2001-03-01  0 
1757 2001-04-01  1 
1758 2001-05-01  1 
1759 2001-06-01  1 
1760 2001-07-01  1 
1761 2001-08-01  1 
1762 2001-09-01  1 
1763 2001-10-01  1 
1764 2001-11-01  1 
1765 2001-12-01  0 
1766 2002-01-01  0 
1767 2002-02-01  0 
1768 2002-03-01  0 
1769 2002-04-01  0 
1770 2002-05-01  0 
1771 2002-06-01  0 

其中1表示經濟衰退和0表示無衰退(增長)。

我想計算連續1的平均長度,最大長度和最小長度。和0一樣。

我想在優雅的時尚中做到這一點。我可能會考慮將0轉換爲-1並進行一些總結。我搜查了很多,似乎無法找到一條好的工作路徑。

這個線程提供了一些線索,但他只繪製(據我可以告訴): R Recession Dates Conversion

有人能指出我在正確的方向?

+0

謝謝!這以非常優雅的方式解決了我的問題!是否也可以用最大/最小值(開始,結束或中間)顯示關聯的日期/時間(從xts對象)?很高興有。不需要。再次感謝! – Cronos

回答

1

your_vector是經濟衰退/非經濟衰退的二元矢量,

oo <- with(rle(your_vector), split(lengths, values)) 
sapply(oo, function(x) c(min = min(x), max = max(x), mean = mean(x))) 

我無法從quantmod讓您的數據,不知道爲什麼。

+0

請給我發電子郵件與quantmod你的麻煩。我想確保它不是一個錯誤。 –

相關問題