2016-12-26 7 views
1

私は単純なバイナリ時系列を持っています。これは米国が景気後退にあるかどうかを示しています(https://fred.stlouisfed.org/series/USRECM)、それを図の陰影領域として追加したいのです。しかし、グラフにはリストしか入っていないので(link以下を参照)、各景気後退期のリストを作成する簡単な方法が必要です。バイナリ時系列からリストを作成する

Rでこれを行う効率的な方法私は現在の値と遅れた値を調べる関数を書いています。

日付と lubridateパッケージのための '配列' function
recession_periods <- list(
    list(from = "1920-1-1", to = "1930-1-1"), 
    list(from = "1940-1-1", to = "1950-1-1"), 
    list(from = "1960-1-1", to = "1970-1-1") 
) 

答えて

1

はい、。たとえば、10年単位で日付のシーケンスが作成されます。

library(data.table) 
library(lubridate) 

elements <- data.table(from = seq(from = as.Date('1920-01-01'), to = as.Date('1990-01-01'),by = "10 year")) 
# Add the space in years between dates 
elements[, to := from + years(10)] 
finalList <- setNames(split(elements, seq(nrow(elements))), rownames(elements)) 

これは、このようなものが作成されます:あなたはseqbyパラメータを使用したなどの年の異なる数、週、日、によって、日付の他の多くのペアを作成することができます

$`1` 
     from   to 
1: 1920-01-01 1930-01-01 

$`2` 
     from   to 
1: 1930-01-01 1940-01-01 

$`3` 
     from   to 
1: 1940-01-01 1950-01-01 

$`4` 
     from   to 
1: 1950-01-01 1960-01-01 

$`5` 
     from   to 
1: 1960-01-01 1970-01-01 

$`6` 
     from   to 
1: 1970-01-01 1980-01-01 

$`7` 
     from   to 
1: 1980-01-01 1990-01-01 

$`8` 
     from   to 
1: 1990-01-01 2000-01-01 

をし、 lubridate機能。

関連する問題