Re: [程式] SAS 如何合併相同日期的觀察值

看板Statistics作者 ( )時間5年前 (2019/03/08 23:44), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
也可以嘗試retain, 不過手邊沒有電腦可能語法有點小問題,不過概念是這樣的 proc sort data=data1; by ID DATE TREATMENT; run; data data2; set data1; by ID DATE; length NEWTRT $200.; retain NEWTRT; if first.DATE then NEWTRT=strip(TREATMENT); else NEWTRT=catx(‘+’, NEWTRT, TREATMENT); if last.DATE; run; 如果對first last 有疑問可以參考以下文章 https://blogs.sas.com/content/iml/2018/02/26/how-to-use-first-variable-and-las t-variable-in-a-by-group-analysis-in-sas.html ※ 引述《x1234567 (莫急莫荒莫害怕)》之銘言: : ※ 引述《hiarpu (up)》之銘言: : : TITLE請註名軟體類別 如[程式] stata : : 發文前請把灰色的註解刪除(可使用ctrl+y刪除一整行) : : [軟體程式類別]: : : SAS : : [程式問題]: : : 不知道如何合併觀察值 : : [軟體熟悉度]: : : 請把以下不需要的部份刪除 : : 新手 : : [問題敘述]: : : 如一個病人在同一天接受到兩種治療 : : 如 : : ID DATE TREATMENT : : 1 3/20 A : : 1 3/20 B : : 1 7/18 B : : 2 2/15 A : : 3 5/10 A : : 4 9/16 A : : 4 9/16 B : : 我要如何把同一天不同的治療合併在一起變成新的變數呢? : : 希望合併後變成 : : ID DATE TREATMENT : : 1 3/20 A+B : : 1 7/18 B : : 2 2/15 B : : 3 5/10 A : : 4 9/16 A+B : : 謝謝 萬分感謝 : *假設原資料集叫data1,拆成兩個,再合併成data2; : proc sort data=data1(where=(treatment='A')) out=data_A(rename=(treatment=tre at : ment1)); by id date;run; : proc sort data=data1(where=(treatment='B')) out=data_B(rename=(treatment=tre at : ment2)); by id date;run; : data data2; : merge data_A data_B; by id date; run; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.243.73 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1552059847.A.558.html
文章代碼(AID): #1SWet7LO (Statistics)
文章代碼(AID): #1SWet7LO (Statistics)