2017-08-25 45 views
1

私は時系列解析に取り組んでいます。異なる分析単位で複数のデータセットを開発したいと考えています。つまり、データセット1のユニットは、4年間(districtYearPeriodCode)の期間内に2週間の期間、国Xで地区となり、データセット2のユニットは、4週間の期間にわたって国Xで地区となります4年、など。日付が発生する時間間隔を見つける

インターバルIDと同様に、インターバルごとに開始日と終了日を含む多数のデータフレームを作成しました。以下は2週間の間隔です。

begin <- seq(ymd('2004-01-01'),ymd('2004-06-30'), by = as.difftime(weeks(2))) 
end <- seq(ymd('2004-01-14'),ymd('2004-06-30'), by = as.difftime(weeks(2))) 
interval <- seq(1,13,1) 
df2 <- data.frame(begin, end, interval) 

     begin  end interval 
1 2004-01-01 2004-01-14  1 
2 2004-01-15 2004-01-28  2 
3 2004-01-29 2004-02-11  3 
4 2004-02-12 2004-02-25  4 
5 2004-02-26 2004-03-10  5 
6 2004-03-11 2004-03-24  6 
7 2004-03-25 2004-04-07  7 
8 2004-04-08 2004-04-21  8 
9 2004-04-22 2004-05-05  9 
10 2004-05-06 2004-05-19  10 
11 2004-05-20 2004-06-02  11 
12 2004-06-03 2004-06-16  12 
13 2004-06-17 2004-06-30  13 

これに加えて、イベント、日付の観測値を含むデータフレームがあります。これは次のようになります。

new.df3 <- data.frame(dates5, districts5) 
new.df3 

    dates5 districts5 
1 2004-01-01   d1 
2 2004-01-02   d2 
3 2004-01-03   d3 
4 2004-01-04   d4 
5 2004-01-05   d5 

私はこのようなもので終わるのに使うことができる関数がありますか?

 dates5 districts5 interval5 
1 2004-01-01   d1   1 
2 2004-01-02   d2   1 
3 2004-01-03   d3   1 
4 2004-01-04   d4   1 
5 2004-01-05   d5   1 

私はlubridateパッケージで、または他のスレッドで答えを見つけようとしてきたが、すべての答えが日付の代わりに間隔を特定の特定の時間間隔内に入るかどうかを見つけ出すに仕立てているように見えます日付はある間隔のグループに分類されます。

多くの感謝!

+0

何かのように:https://stackoverflow.com/questions/41132081/find-which-interval-row-in-a-data-frame-that-each-element-of- a-vector-belong-in/41133991多分? – thelatemail

+0

はい、うまくいきました! – srojascabal

答えて

0

私はhereの@alistairで概説されたpurrrを使用しました。私は以下のそれを再現:

elements %>% 
    map(~intervals$phase[.x >= intervals$start & .x <= intervals$end]) %>% 
    # Clean up a bit. Shorter, but less readable: map_chr(~.x[1] %||% NA) 
    map_chr(~ifelse(length(.x) == 0, NA, .x)) 
## [1] "a" "a" "a" NA "b" "b" "c" 
関連する問題