2016-07-20 23 views
1

私は答えを見つけることができるかどうかを確認するために多くの質問を検索しましたが、何もしないようにしています。だから私はこのようになり、データを持っている:開始日と終了日の範囲の重複が1日当たりR

ID Area Start  End 
1 9  2016-06-30 2016-07-07 
2 9  2016-07-01 2016-07-04 
3 8  2016-06-21 2016-06-28 
4 8  2016-06-23 2016-06-25 
5 8  2016-06-25 2016-06-30 

私は日の集計数の空白の列を持つ各エリアの全体の日付範囲を持つデータフレームを作成している行っています。たぶん、そこにこれを行うための簡単な方法、またはこのシナリオを扱うことができるパッケージですが、私はこのようなものを考え出すことを期待しています:処理するための簡単な方法があるべきよう

Area Date  Count 
...    0 
9  2016-06-30 1 
9  2016-07-01 2 
9  2016-07-02 2 
9  2016-07-03 2 
9  2016-07-04 2 
9  2016-07-05 1 
9  2016-07-06 1 
9  2016-07-07 1 
9  2016-07-08 0 
...    0 
8  2016-06-21 1 
8  2016-06-22 1 
8  2016-06-23 2 
8  2016-06-24 2 
8  2016-06-25 3 
8  2016-06-26 2 
8  2016-06-27 2 
8  2016-06-28 2 
8  2016-06-29 1 
8  2016-06-30 1 
...    0 

はそうRのような配列ですが、まだ見つかりませんでした。

ありがとうございます!

+0

6月30日 – eddi

答えて

2
library(data.table) 
dt = as.data.table(your_df) # or setDT to convert in-place 

# convert dates to Dates (assuming they aren't) 
dt[, Start := as.Date(Start, '%Y-%m-%d')] 
dt[, End := as.Date(End, '%Y-%m-%d')] 

# expand the dates, then aggregate 
dt[, .(Date = seq(Start, End, by = 1), Area), by = ID][, .N, by = .(Date, Area)] 
#   Date Area N 
#1: 2016-06-30 9 1 
#2: 2016-07-01 9 2 
#3: 2016-07-02 9 2 
#4: 2016-07-03 9 2 
#... 
+0

イベントが発生していない場合は、カウント0が欠落しています。しかし、この答えは質問の要点を解決します。 – Sasha

関連する問題