Re: [程式] sas加總
※ 引述《lsctime (快樂有這麼困難嗎?)》之銘言:
: ※ 引述《lena0425 (lena)》之銘言:
: : ------------------------------------------------------------------------
: : [軟體程式類別]:
: : sas
: : [程式問題]:
: : 資料處理
: : [軟體熟悉度]:
: : 新手(不到1個月)
: : [問題敘述]:
: : 我想要將同樣id的人的a1加總
: : [程式範例]:
: : id a1 我想要多一個變數 y_1 變成
: : 1 w
: : 1 i
: : 1 q
: : 2 e
: : 2 p
: : id a1 y_1
: : 1 w
: : 1 i
: : 1 q 3---->每個a1都算一次門診,這個人共看了3次
: : 2 e
: : 2 p 2----->這個人看了2次
: : 請問該怎麼寫指令> <
: : 謝謝
: data a;
: input id $ a1 $;
: cards;
: 1 w
: 1 i
: 1 q
: 2 e
: 2 p
: ;
: proc sort;by id;/*為後續併檔做準備*/
: run;
: /*用sql計算就醫次數,不用sql也可以用retain但個人習慣用sql*/
: proc sql;
: create table a1 as
: select id,
: count(id) as y_1
: from a
: group by id;
: quit;
: /*把計算出來的次數合併回去原檔案*/
用sql就不用兩段式
proc sql;
create table a1 as
select id,a1,count(id) as y_1
from a
group by id;
quit;
但有些初學者未必了解上述語法
我會建議由敘述統計語法著手
proc freq
proc freq data=a;
table id/out=a1;
run;
上述語法可以產生次數分配
就可以進行後續動作
: data a2;
: merge a a1;
: by id;
: run;
: 以上淺見給你參考,感覺應該有更簡潔的寫法
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.163.224.240
→
01/21 21:18, , 1F
01/21 21:18, 1F
討論串 (同標題文章)