2017-06-16 77 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你的麻烦。我想确保它不是一个错误。 –

相关问题