別のファイルの日付/時刻ウィンドウに基づいて、1つの大きなファイルから各個人のデータを抽出する必要があります。ウィンドウファイルとしてID、開始日、終了日があり、他のすべての種類のデータを含む巨大なファイル(FULLDATA)がありますが、単純化してID、日付、X、Y、Zのみがあると言います。
例:日付ウィンドウデータファイル
ID Start End Date
c1 03/03/03 01:02 03/15/03 12:00
a2 03/03/03 04:35 03/10/03 13:00
f3 02/03/03 11:02 05/15/03 15:00
c1 01/03/04 13:02 02/15/05 17:00
a2 04/23/04 04:02 05/14/05 10:00
IDが重複していますが、データを取得する必要がある固有の時間枠があります。
私のコードでは、レベルを設定する必要があります
IDNames = levels(dates$ID)
ただし、これを行うと、IDレベルが一意になり、そのレベルが最初に表示されたときのウィンドウのみが使用されます。したがって、私の例では、c1とa2は1回だけ使用され、最初の出現から情報を抽出します。
私が試してみました
levels(make.unique(IDNames))
しかし、これによりID「c1」が「c1.1」に変わり、残りのコマンドのFULLDATAファイルと一致しなくなります。
for (n in 1:(length(IDNames))) {
IndivData = FULLDATA[FULLDATA$ID==IDNames[n],]
Dateswindow = dates[dates$ID==IDNames[n],]
}