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

看板Statistics作者 (那就念吧~~)時間13年前 (2012/09/14 22:33), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串1/2 (看更多)
[軟體程式類別]: 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: 36.227.124.117 ※ 編輯: dofu1943 來自: 36.227.124.117 (09/14 22:38)

09/15 01:37, , 1F
SQL or merge
09/15 01:37, 1F
※ 編輯: dofu1943 來自: 36.227.122.1 (09/15 09:04) ※ 編輯: dofu1943 來自: 36.227.122.21 (09/16 08:37) ※ 編輯: dofu1943 來自: 36.227.122.21 (09/16 08:38) ※ 編輯: dofu1943 來自: 36.227.122.21 (09/16 08:39) ※ 編輯: dofu1943 來自: 36.227.122.21 (09/16 08:47) 嗯~ 後來我自己試了一下,上面那段寫法有問題 改了之後變成 proc sql; CREATE table AA as (在work資料夾開一個AA table) select * from a full join add on ( a.var2=add.var2 ) and ( a.year=add.year ) ; quit; 這裡我比較疑惑的是 上述的操作好像只能在work裡操作 如果想在lib裡的某個資料夾進行時 好像就不能 例如在reserch這個資料夾裡操作 而寫成 reserch.a.var2=reserch.add.var2 好像就無法成功~~~~~~ ※ 編輯: dofu1943 來自: 36.227.123.145 (09/17 20:33)

09/18 18:52, , 2F
我的語法不是就完成了?
09/18 18:52, 2F
沒錯~~ 其實t大的寫法其實就已經完成了 但...我問第二個問題(就是合併兩個table的語法) 的原因其實是因為我還有另一張excel表(簡稱B表) 而那張excel表的部份資訊是原來proc sql creat 的加總table所沒有的 所以creat 加總值的表之後還要針對當中的兩個變數(即上述所提的obs 和 year) 去合併B表 於是我才藉著這個問題,問了兩樣方法 所以其實是我的問題問得不太好啦~~~ 因為我問的問題其實只要用一種語法就可以寫出來了 不需要用proc sql重新抽變數出來再進行合併~~ 總之~~~ 感謝t大囉 ※ 編輯: dofu1943 來自: 36.227.123.190 (09/18 22:00) ※ 編輯: dofu1943 來自: 36.227.123.190 (09/18 22:01)
文章代碼(AID): #1GKq1MzB (Statistics)
文章代碼(AID): #1GKq1MzB (Statistics)