でレコードをマッチングするための最小の日付を検索:私はそうのような病院の出会いのデータセットを持っている別のデータフレーム
VISIT_KEY PAT_KEY DICT_ENC_TYPE_KEY HOSP_DISCHRG_DT MED_ORD_ID HAD_FOLLOWUP
1 82919395 8979499 83 2014-09-07 10:47:00 58826846 1
2 82919395 8979499 83 2014-09-07 10:47:00 58826847 1
3 82919395 8979499 83 2014-09-07 10:47:00 58826848 1
4 82919395 8979499 83 2014-09-07 10:47:00 58826845 1
5 77312433 8979499 83 2015-02-01 09:33:00 98525833 1
6 77312433 8979499 83 2015-02-01 09:33:00 98525834 1
7 77312433 8979499 83 2015-02-01 09:33:00 98525835 1
などのようなフォローアップの出会いのデータセット:
VISIT_KEY PAT_KEY DICT_ENC_TYPE_KEY APPT_CHECKIN_DT
1 84273751 8979499 108 2015-02-07 11:57:46
2 83999897 8979499 108 2014-09-13 16:51:22
3 83881023 8979499 108 2014-11-12 10:37:51
4 83999896 8979499 108 2014-11-20 09:23:25
5 95164335 8979499 108 2016-07-27 15:30:25
6 83922326 8979499 108 2014-11-16 09:08:47
病院出会いデータセットの新しいフィールドに出会うためのAPP_CHECKIN_DTの最小値を取得しようとしています。FOLLOWUP_DTこれは、HOSP_DISCHRG_DTより大きい最小APP_CHECKIN_DTである必要があります。
例えば:VISIT_KEY = 82919395について
- 、この患者のための2014年9月7日10時47分00秒のHOSP_DISCHRG_DTよりも大きい第2のデータセットにおける最も早いAPP_CHECKIN_DTは2014から09であろう-13 16:51:22
- VISIT_KEY = 77312433の場合、この患者のHOSP_DISCHRG_DTのHOSP_DISCHRG_DTより大きい最も古いAPP_CHECKIN_DTは2015-02-01 09:33:00です。 :57:46
最終的な病院の出会いデータセットは、以下のような:
VISIT_KEY PAT_KEY DICT_ENC_TYPE_KEY HOSP_DISCHRG_DT MED_ORD_ID HAD_FOLLOWUP FOLLOWUP_DT
1 82919395 8979499 83 2014-09-07 10:47:00 58826846 1 2014-09-13 16:51:22
2 82919395 8979499 83 2014-09-07 10:47:00 58826847 1 2014-09-13 16:51:22
3 82919395 8979499 83 2014-09-07 10:47:00 58826848 1 2014-09-13 16:51:22
4 82919395 8979499 83 2014-09-07 10:47:00 58826845 1 2014-09-13 16:51:22
5 77312433 8979499 83 2015-02-01 09:33:00 98525833 1 2015-02-07 11:57:46
6 77312433 8979499 83 2015-02-01 09:33:00 98525834 1 2015-02-07 11:57:46
7 77312433 8979499 83 2015-02-01 09:33:00 98525835 1 2015-02-07 11:57:46
私は病院の出会いのPAT_KEYは、外来患者遭遇PAT_KEYと一致しAPPT_CHECKIN_DTがあるならば、APPT_CHECKIN_DT参照を取得、出会いがフォローしていたかどうかを確認見つけるために以下のようなifelse文とループのためのいくつかを試してみましたHOSP_DISCHRG_DTより大きく、その後、フォローの日付を取得するために最低限APPT_CHECKIN_DTを取る:
for (i in 1:nrow(children_dx)) {
children_dx$FOLLOW_UP_DATE[i] <-
ifelse(children_dx$HAD_FOLLOWUP[i] == 1,
ifelse(outpatient_visits$APPT_CHECKIN_DT[children_dx$PAT_KEY[i] == outpatient_visits$PAT_KEY] > children_dx$HOSP_DISCHRG_DT[i],
as.character(min(outpatient_visits$APPT_CHECKIN_DT[children_dx$PAT_KEY[i] == outpatient_visits$PAT_KEY])),
NA),NA)
}
しかし、これは完全なデータセットの実行に非常に時間がかかり、完成した場合でも、FOLLOWUP_DATEはのための全体的な最小値でありますPAT_KEYが一致するレコードだけでなく、データセット全体のAPPT_CHECKIN_DT。
これは、その作業のように見えますが、私はこのエラーrecieveing保つ:min.defaultで 'エラー(C(1420043124、1420043124、1420043124 、1420043124、: 最小値を取得しようとすると、引数の 'タイプ'(リスト)が無効です – nimz713
実際のデータフレームには、実際の日付、文字、 POSIXct型に変換してみてください。このソリューションとコードでデータサンプルを実行すると、ソリューションの動作がわかります。 – Parfait