1

次のようなデータセットがあり、月次パネルデータセットに拡張したいと思います。

ID | start_date | end_date | event_type |
 1 |   01/01/97 | 08/01/98 |          1 |
 2 |   02/01/97 | 10/01/97 |          1 |
 3 |   01/01/96 | 12/01/04 |          2 |

一部のケースは他のケースよりも長持ちします。各日付から年を引き出して使用することにより、データを年次構成に拡張する方法を理解しました。

year <- ddply(df, c("ID"), summarize, year = seq(startyear, endyear))

に続く:

month <- ddply(year, c("ID"), summarize, month = seq(1, 12))

このアプローチの問題は、その月に正しい番号が割り当てられないことです。つまり、1月= 1であるため、最終的にマージしたいイベントデータセットではうまく機能しません。year、、、IDおよびに一致しmonthます。助けていただければ幸いです。これが私が拡張しようとしているデータセット(.xls)への直接リンクです:http://db.tt/KeLRCzr9。十分な情報が含まれているといいのですが、他に必要な情報があれば教えてください。

4

2 に答える 2

1

次のようなことをもっと試すことができます:

ddply(df,.(ID),transform,dt = seq.Date(as.Date(start_date,"%m/%d/%Y"),as.Date(end_date,"%m/%d/%Y"),by = "month"))

行名に関係する多くの警告が表示される可能性があります。リンク先のデータ セットが提供する例と一致しないため、これが機能することを保証できません。まず、開始日と終了日は .xls ファイルにさまざまな形式で表示されるため、クリーンアップしたと思います。

于 2012-04-09T00:10:41.570 に答える
0
ddply(df, .(ID), summarize, dt = seq.Date(start_date, end_date, by = "month"))

start_date と end_date がすでに日付オブジェクトであると仮定します。ジョランは私に近づきました。もう一度、助けてくれてありがとう。

于 2012-04-09T13:59:26.413 に答える