私は、株価、のようなものが含まれているデータフレームを持っています。私はデータを連続した時系列にサブセット化することを考えています(週末は無視しています)。私は株式数と時間の間のトレードオフに直面する(すなわち、時系列が長くなればなるほど、シリーズ全体で利用可能なデータが少ない企業)。見つける連続実行が
私は、シリーズを選ぶための最適な方法は、株式の実行の開始日と(おそらく異なる)株式の実行の終了日が含まれていることです。それ以外の期間は、時間範囲を最大化するものではありません。最後に、可能な開始日、終了日、および企業の数を含むデータフレームを期待しています。私はどの時間範囲が最も適しているかを決めることができます。
私はこれがはっきりしていることを願っておりますが、明確化が必要な場合はお知らせください。
編集:これが役立ちます。ここで私は、この出力のために願っていた粗データフレーム
date1 <- seq(as.Date("2006/1/1"), as.Date("2010/1/1"), "days")
date2 <- seq(as.Date("2006/6/12"), as.Date("2008/1/1"), "days")
date3 <- seq(as.Date("2009/10/11"), as.Date("2010/12/1"), "days")
date4 <- seq(as.Date("2002/1/1"), as.Date("2007/1/13"), "days")
row_to_drop1 <- !(weekdays(as.Date(date1)) %in% c('Saturday','Sunday'))
row_to_drop2 <- !(weekdays(as.Date(date2)) %in% c('Saturday','Sunday'))
row_to_drop3 <- !(weekdays(as.Date(date3)) %in% c('Saturday','Sunday'))
row_to_drop4 <- !(weekdays(as.Date(date4)) %in% c('Saturday','Sunday'))
date1 <- date1[row_to_drop1]
date2 <- date2[row_to_drop2]
date3 <- date3[row_to_drop3]
date4 <- date4[row_to_drop4]
mydf <- rbind.data.frame(data.frame(id = 1, date = date1),data.frame(id=2,date=date2),data.frame(id=2,date=date3),data.frame(id=3,date=date4))
です:
start end #ofids
1/1/2006 1/1/2010 1
6/12/2006 1/1/2010 2
10/11/2009 1/1/2010 3
1/1/2002 1/1/2010 3
1/1/2006 1/1/2008 3
6/12/2006 1/1/2008 1
10/11/2009 1/1/2008 2
1/1/2002 1/1/2008 3
1/1/2006 12/1/2010 1
6/12/2006 12/1/2010 3
10/11/2009 12/1/2010 2
1/1/2002 12/1/2010 2
1/1/2006 1/13/2007 2
6/12/2006 1/13/2007 1
10/11/2009 1/13/2007 1
1/1/2002 1/13/2007 1
だけで構成されて#ofidsが、うまくいけば、それは全体のポイントを取得します。開始日が終了日より長くてはならないため、一部の行は削除されます。
start end
1/1/2006 1/1/2010
6/12/2006 1/1/2010
10/11/2009 1/1/2010
1/1/2002 1/1/2010
1/1/2006 1/1/2008
6/12/2006 1/1/2008
1/1/2002 1/1/2008
1/1/2006 12/1/2010
6/12/2006 12/1/2010
10/11/2009 12/1/2010
1/1/2002 12/1/2010
1/1/2006 1/13/2007
6/12/2006 1/13/2007
1/1/2002 1/13/2007
14x3(IDS)= 42行のために作る必要があります。
は、ここで実行されます(すべての終了日と開始日のコンボ)です。
希望の出力?それぞれの 'id'の' date'の範囲だけですか?それは単なる集約です。 – alistaire
@alistaire可能なすべての範囲とその範囲で使用可能なIDの数。可能な範囲は、在庫の連続ストレッチの開始日のペアです(ただし必ずしも同じ在庫ではありません。すべての開始日と終了日のデカルト積を取る必要があります)。 – Almacomet
どのように「連続」を定義していますか?市場が開いている日?それは別のデータセットを必要とするでしょう(またはあなたが持っているものから推論する必要があります)。サンプルの目的の結果を含めて、サンプルを編集して[再現可能]にする必要があります(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#5963610)。データ。 – alistaire