看板 Statistics 關於我們 聯絡資訊
※ 引述《lsshno1 (朝右邊鋒邁進)》之銘言: : 各位好,想請問一下, 下列想法如何做到呢? : 資料型態: : date zip_code : 1/1 111 : 1/1 103 : 1/1 111 : 1/1 108 : 1/2 309 : 1/2 111 : 1/2 103 : . : . : . : 12/31 103 : 12/31 111 : 希望整理資料下列形式: : data 103 108 111 309 : 1/1 1 1 2 0 : 1/2 1 0 1 1 : . : . : . : 12/31 1 0 1 0 : 也就是說,希望算出每日有多少個不同的zip_code. var變數名稱就是zip_code : 想法: : 我開始是想用sql解決: : proc sql; : create table output as : select date,zip_code,count(zip_code) as count : from date : group by date,zip_code : ; : quit; : output輸出如下: : date zip_code count : 1/1 103 1 : 1/1 108 1 : 1/1 111 2 : . : . : 12/31 103 1 : 12/31 111 1 : 感覺只差一步可是就是想不出來! : 感激各位了! /*這裡的結果跟你使用SQL是一樣的*/ proc sort data=yourdata; by date zip_code; run; proc univariate data=yourdata noprint; by date zip_code; var zip_code; output out=a1 n=n; run; /*轉成你要的樣子,印象中SAS變數不能全數字,prefix=a 讓變數為 a'ooo' */ proc transpose out = new data=a1 prefix=a; by date ; id zip_code; var n; run; /*可有可無,讓表好看點*/ data new; set new; drop _NAME_ _LABEL_; run; 離你的要求還差一步,沒值的部份顯示為. ,而不是 0 不知道SAS能不能不管變數,只要是.一率取代為 0 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.172.224.45
liton:這你有真的跑過?? 01/01 18:32
liton:幹麻多個univarite? 01/01 18:40
MmmRrrrX:只是因為SQL不熟,用univariate output n= 算個數 01/01 18:43
liton:ERROR: Variable zip_code in list does not match type 01/01 18:47
liton:prescribed for this list. 01/01 18:48
liton:好像不能跑 01/01 18:48
我把我實驗的程式po出來,資料只用前兩天,也懶的設成日期的格式 data yourdata; input date zip_code; cards; 1 111 1 103 1 111 1 108 2 309 2 111 2 103 2 103 ; proc sort data=yourdata; by date zip_code; run; proc univariate data=yourdata noprint; by date zip_code; var zip_code; output out=a1 n=n ; run; proc transpose out = new data=a1 prefix=a; by date ; id zip_code; var n; run; data new; set new; drop _NAME_ _LABEL_; run; ※ 編輯: MmmRrrrX 來自: 218.172.224.45 (01/01 18:51)
wlsherica:SAS可以將.一律取代0 01/01 18:50
※ 編輯: MmmRrrrX 來自: 218.172.224.45 (01/01 18:55)
lsshno1:感謝各位前輩,我差在traspose中的id zip_code. 謝謝! 01/01 19:01