※ 引述《livcruise (liv)》之銘言:
: 目前將門診跟住院合併了
: 原本的住院日期 出院日期(針對住院) 以及就醫日期(門診)是文字格式
: 已經改成SAS mdy格式 另外新增變項:住院日數
: 另外相關的變項是 病患id(文字)、藥品代碼(文字:A藥跟B藥)、給藥日份(數字)
: 一個病患 一種藥就會有一列觀查值 包含上述變項
: 若是住院就會有住院日期 出院日期 門診則是只有就醫日期
: 想請教 今天想抓出
: 1.住院期間 有同天服用A藥跟B藥的紀錄
: 2. 門診: 病患的給藥日份內 有吃到A藥跟B藥的紀錄
: 不管是A藥先開出或是B藥先開出 只要有同時服用即要抓出到另一個檔案
: 以下是簡單圖示範例說明 (日期暫仍用文字格式呈現)
: id 住院日期 出院日期 住院天數 就醫日期 藥品代碼 給藥天份
: 1 5/1 5/8 8 A
: 1 5/1 5/8 8 B
: 以上是一種可能
: 1 8/5 8/10 6 A
: 1 8/7 8/10 4 B
: 這種會發生在醫師臨時新開藥 我也要抓出來
: 2 1/5 A 28
: 2 2/1 B 7
: 2 2/8 B 14
: 2 2/17 A 5
: 2 2/24 B 8
: 以上這五項 前四項都要抓出 只有最後一項不用
: 大致上就是這樣~ 拜託各位了!
: 我是想說用retain來抓 但是 寫不出來
: 或是 大大們有更好的辦法~麻煩了! 感激不盡
建議日期用數字格式
並分開為 月跟日
m d me 服藥天數
2 1 5 A 28
2 2 1 B 7
2 2 8 B 14
2 2 17 A 5
2 2 24 B 8
接著 我們可以做一件事情
if m=1 then dd=m*31+d;
if m=2 then dd=m*28+d;
/*請處理完12個月 閏年的話也處理*/
ddd=dd+服藥天數;
接著 我們就可以這樣做
if 病人=lag(病人) and lag(dd) <=dd<=lag(ddd) then same=lag(me);
當然 我不清楚你的資料會同時服用幾種藥物
僅就你目前展示的資料 可以這樣纂寫
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.208.32.109
※ 編輯: tew 來自: 134.208.32.109 (05/02 00:17)