2017-06-16 9 views
1

私は基本的に米国の後退についていくつかの計算をしようとしています。 私はFREDからデータをダウンロードし、それがこのようになります:1は、景気後退を示し、0は非景気後退(成長)を示しバイナリベクトルのランレングスサマリー(最小、最大、平均)

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と同じです。

私はエレガントなファッションでこれをやりたいです。私はおそらく、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で問題をメールしてください。私はバグではないことを確認したいと思います。 –

関連する問題