编程语言
首页 > 编程语言> > python-R获取衰退期的开始日期和结束日期

python-R获取衰退期的开始日期和结束日期

作者:互联网

我正在尝试在R中绘制衰退期.请考虑以下示例,衰退期被识别为1,而非衰退期为0.

Date           Recession  
1918-09-01     1  
1918-10-01     1  
1918-11-01     1  
1918-12-01     1  
1919-01-01     1  
1919-02-01     1  
1919-03-01     1  
1919-04-01     0  
1919-05-01     0  
1919-06-01     0  
1919-07-01     0  
1919-08-01     0  
1919-09-01     0  
1919-10-01     0  
1919-11-01     0  
1919-12-01     0  
1920-01-01     0  
1920-02-01     1  
1920-03-01     1  
1920-04-01     1  
1920-05-01     1  

谁能帮助我掌握经济衰退期的开始日期和结束日期?例如:

Start                 End
1918-09-01     1919-03-01
1920-02-01     1920-05-01

几年前曾问过同样的问题,但我认为答案无法解决这个问题.查看R Recession Dates Conversion

提前致谢!

解决方法:

使用data.table包中的rleid()函数:

library(data.table)
data.table(DF)[, .(min(Date), max(Date)), by = .(rleid(Recession), Recession)][
  Recession == 1, .(Start = V1, End = V2)]

06001

说明

第一个data.table表达式查找所有期间的开始和结束日期. rleid()是用于生成要在分组操作中使用的游程长度类型id列的便捷函数.

data.table(DF)[, .(min(Date), max(Date)), by = .(rleid(Recession), Recession)]

06003

第二个表达式仅选择衰退期,并返回开始日期和结束日期.

数据

DF <- readr::read_table(
  "Date           Recession  
  1918-09-01     1  
  1918-10-01     1  
  1918-11-01     1  
  1918-12-01     1  
  1919-01-01     1  
  1919-02-01     1  
  1919-03-01     1  
  1919-04-01     0  
  1919-05-01     0  
  1919-06-01     0  
  1919-07-01     0  
  1919-08-01     0  
  1919-09-01     0  
  1919-10-01     0  
  1919-11-01     0  
  1919-12-01     0  
  1920-01-01     0  
  1920-02-01     1  
  1920-03-01     1  
  1920-04-01     1  
  1920-05-01     1  "
)

标签:python,r,matlab,time-series
来源: https://codeday.me/bug/20191013/1908088.html