特定の日付にプロジェクトに取り組んだ人々を説明する次のデータフレーム DF があります。
ID ProjectName StartDate
1 Health 3/1/06 18:20
2 Education 2/1/07 15:30
1 Education 5/3/09 9:00
3 Wellness 4/1/10 12:00
2 Health 6/1/11 14:20
目標は、各 ID に対応する最初のプロジェクトを見つけることです。たとえば、予想される出力は次のようになります。
ID ProjectName StartDate
1 Health 3/1/06 18:20
2 Education 2/1/07 15:30
3 Wellness 4/1/10 12:00
これまでのところ、各 ID の最初の StartDate を取得するために次のことを行いました。
sub <- ddply(DF, .(ID), summarise, st = min(as.POSIXct(StartDate)));
この後、sub の各行を元の DF と照合し、その ID と StartDate に対応するプロジェクトを抽出する必要があります。これは、サブの各行のループで実行できます。ただし、私のデータセットは非常に大きいため、このマッチングを実行して DF からこのサブセットを抽出する効率的な方法があるかどうかを知りたいです。