Re: [程式] 請問sas proc mean能否以表格型態輸出

看板Statistics作者 (咖啡王子)時間13年前 (2012/09/16 10:00), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串2/2 (看更多)
所以你只是要每個都有同年分的總值就好了 而非是限定特定月份加總 因為你最初的寫法是 A 201101~201103 B 201101~201103 C 201101~201102 讓我以為你有特殊的要求 但是只是同年度加總 很簡蛋的 proc sql; create table total as select obs,yearmo,value,sum(value) as total from yourfile group by obs,year(yearmo); quit; 如果你的yearmo是時間隔式 以上語法可以成立 不然就 data yourfile; set yourfile; year=int(yearmo/100); run; proc sql; create table total as select obs,yearmo,value,sum(value) as total from yourfile group by obs,year; quit; 這樣就可以了 ※ 引述《dofu1943 (那就念吧~~)》之銘言: : [軟體程式類別]: : sas : [程式問題]: : 資料處理 : [軟體熟悉度]: : 新手 : [問題敘述]: : 根據tew大的提示後,我的方向變了一下 : 改從proc sql下手 : 想從下列資料(因資料放在檔案夾的r所以命為r.a) : 按obs和yearmon得到value的加總值 : 並且以table的方式呈現加總值變數total : (新create的table稱為add) : 接著利用兩個條件值obs和yearmon : 將加總值裡的total併到原來的檔案 : obs yearmon year value : A 201005 2010 10 : A 201010 2010 20 : A 201101 2011 50 : A 201103 2011 90 : B 201006 2010 30 : B 201010 2010 50 : B 201101 2011 70 : B 201103 2011 50 : C 201101 2011 80 : C 201102 2011 10 : . . . : . . . : 希望變成 : obs yearmon year value total : A 201005 2010 10 30 : A 201010 2010 20 30 : A 201101 2011 50 140 : A 201103 2011 90 140 : B 201006 2010 30 80 : B 201010 2010 50 80 : B 201101 2011 70 120 : B 201103 2011 50 120 : C 201101 2011 80 90 : C 201102 2011 10 90 : . . . . : [程式範例]: : 將加總值create出一張新的table稱為add : PROC SQL ; : CREATE table add as : SELECT obs , year, sum(value) AS total : FROM r.a : where obs is not missing : group by obs, year ; : QUIT ; : PROC SQL; : SELECT : r.a.obs, r.a.year as year, r.a.*, (這裡有點不太懂為什麼要加as year) : add.obs, add.year, add.total : from add full join r.a : on (add.obs=r.a.obs) and (add.year=r.a.year) : ; : quit : 因為都是在google找的 : 而且手邊沒有sas,沒辦法馬上試 : 所以想請版友幫我看一下這樣的想法是否正確 : 還有 : full join那段select完r.a的yearmon之後 : 為什麼要加上as yearmon : 感謝版友的幫忙 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.196.45

09/16 17:25, , 1F
沒錯~~~其實我要BY年度的加總值,所以我把資料重新打過,年
09/16 17:25, 1F

09/16 17:26, , 2F
的取法我打算用substr(left(year),1,4)來處理~~不過t大
09/16 17:26, 2F

09/16 17:27, , 3F
你可以幫我看一下full join那段的寫法是否無誤~~感恩
09/16 17:27, 3F

09/16 17:29, , 4F
sorry,更正第一句話,是by年度和by特定人的加總值
09/16 17:29, 4F

09/16 17:30, , 5F
最後再比對年度和特定人將其加總值併到原來的資料裡~~
09/16 17:30, 5F
文章代碼(AID): #1GLJBNSN (Statistics)
文章代碼(AID): #1GLJBNSN (Statistics)