グループ化変数を特定の日付データに割り当てるには、関数を記述するか、cut
を使用してください。たとえば、連続した日付に収集されたサンプルの共通のグループ化変数を作成したいとします。私はcut
がここで働くと思っていましたが、cut
は、それらが近くにあり、むしろシーケンスに基づいて一連のグループを作成するときに変数をグループ化しないと分かりました。日付が近いときの日付変数のグループ化
したがって、たとえば、このデータフレームを取る:私は右に行った範囲で残されることになる
df$cutVar <- cut(df$day, breaks= seq(0, 31, by = 1), right=TRUE)
:
df <- structure(list(Num = c(0.888401849195361, 0.185766335576773,
0.493163562379777, 0.13070688676089, 0.484760325402021, 0.603240836178884,
0.893201333936304, 0.641203448642045, 0.16957180458121, 0.0101411847863346
), Date = structure(c(10592, 10597, 10598, 10605, 10606, 10608,
10609, 10616, 10617, 10618), class = "Date"), day = c(1L, 6L,
7L, 14L, 15L, 17L, 18L, 25L, 26L, 27L)), .Names = c("Num", "Date",
"day"), row.names = c(NA, -10L), class = "data.frame")
た場合は、私はこのようにその使用法を理解してカット機能を適用することでした私は一緒にグループ化することを好む値を介して。たとえば、6番目と7番目のグループは、互いに近接してグループ化する必要があります。 14日と15日と同様に続きます。
> df
Num Date day cutVar
1 0.88840185 1999-01-01 1 (0,1]
2 0.18576634 1999-01-06 6 (5,6]
3 0.49316356 1999-01-07 7 (6,7]
4 0.13070689 1999-01-14 14 (13,14]
5 0.48476033 1999-01-15 15 (14,15]
6 0.60324084 1999-01-17 17 (16,17]
7 0.89320133 1999-01-18 18 (17,18]
8 0.64120345 1999-01-25 25 (24,25]
9 0.16957180 1999-01-26 26 (25,26]
10 0.01014118 1999-01-27 27 (26,27]
だからここに基本的な質問は、どのようにグループ(ユーザーによって定義された)に近い数字が要因の範囲で一緒にグループ化されているような連続変数(この場合は日付)にありますか?
_consecutive_日付のグループの場合、おそらく 'rle'は非常に便利です。推移的な性質のため、私にとっては「親密さ」の他の定義は非常に迅速に問題になるでしょう。 – joran
あなたが望む出力の例を貼り付けることができますか(または最後に 'df'がありますか)? 2つの隣接する行を組み合わせるだけですか?たとえば、1が2に近い場合、2が3に近い場合、... 19は20に近いですが、1は20に遠く離れていませんか?データは、変更されていない単一のセットに既に存在するか、または新しいデータが時間の経過とともに絶えず追加されますか? – gung
@joran私はこれに完全に同意します。しかし、私の状況(例のデータが取り込めないかもしれない)では、これは問題ではありません。これは、過去のサンプリングデータで、誰かが1日か2日の間にデータを収集してから1か月間待ってから、同じことをしました。 'rle'の使い方を概説することは可能ですか? – boshek