[程式] 不同項目求同年度中位數(救命)

看板Statistics作者 (pedagog)時間12年前 (2013/12/10 10:41), 編輯推噓1(1011)
留言12則, 3人參與, 最新討論串1/1
軟體:SAS 接觸2個月 問題:這是我論文敘述性統計的問題, 有兩個項目,c、avg_ascore,欲求不同公司同一年度,此二項目中位數 附上資料圖片:http://imgur.com/cbwyER7
(安全連結^ ^) 我的寫法: proc univariate data=a1 noprint; var c avg_score; by id yyyy; output out=a2 median=mdn; run; 不過跑出來結果,跟我想的不一樣,可以請大家指點我一下嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.86.93 ※ 編輯: demotion 來自: 61.64.86.93 (12/10 11:00) ※ 編輯: demotion 來自: 61.64.86.93 (12/10 11:01)

12/10 11:13, , 1F
你不是應該打開a2這個file嗎?
12/10 11:13, 1F
A1 A2這些檔事我臨時假設的,沒按照圖片 ※ 編輯: demotion 來自: 61.64.86.93 (12/10 11:20)

12/10 11:26, , 2F
你可以看看log是否有warning嗎?因為結果看起來不對
12/10 11:26, 2F
LOG 沒有WARNING >< 不知道哪裡寫錯了 哭哭 ※ 編輯: demotion 來自: 61.64.86.93 (12/10 11:29)

12/10 11:32, , 3F
試試這個。 第一行改成proc means data=abc;
12/10 11:32, 3F

12/10 11:33, , 4F
跑之前把所有data file關閉。還有數據要sort一下先。
12/10 11:33, 4F

12/10 11:33, , 5F
實在不行把SAS關掉重新打開試試。y
12/10 11:33, 5F
這是我的程式碼 我現在是以求c中位數的狀態寫後面的程式碼 PROC SORT DATA= A1 OUT=A1_1; BY YYYY ID; DATA X1; set a1_1; by YYYY ID; SUM_ASCORE+ASCORE; SUM_BUSY+BUSY; SUM_DSCORE+DSCORE; SUM_FSCORE+FSCORE; IF FIRST. ID THEN SUM_ASCORE=ASCORE; IF FIRST. ID THEN SUM_BUSY=BUSY; IF FIRST. ID THEN SUM_DSCORE=DSCORE; IF FIRST. ID THEN SUM_FSCORE=FSCORE; DROP ASCORE BUSY DSCORE FSCORE; IF LAST. ID THEN OUTPUT; RUN; DATA X2; SET X1; BY YYYY ID; AVG_ASCORE=SUM_ASCORE/c; AVG_BUSY=SUM_BUSY/c; AVG_DSCORE=SUM_DSCORE/c; AVG_FSCORE=SUM_FSCORE/c; DROP SUM_ASCORE SUM_BUSY SUM_DSCORE SUM_FSCORE; RUN; PROC SORT DATA=X2; BY YYYY c; RUN; PROC UNIVARIATE DATA=X2 NOPRINT; VAR c; BY YYYY c; OUTPUT OUT=X3 MEDIAN=MDN; RUN; http://imgur.com/R4qEnlE
W我跑出來結果是這樣 剛剛您提供的方法不行QQ ※ 編輯: demotion 來自: 61.64.86.93 (12/10 11:52) ※ 編輯: demotion 來自: 61.64.86.93 (12/10 11:55) ※ 編輯: demotion 來自: 61.64.86.93 (12/10 12:00) ※ 編輯: demotion 來自: 61.64.86.93 (12/10 12:03) ※ 編輯: demotion 來自: 61.64.86.93 (12/10 12:11)

12/10 12:13, , 6F
所以你搞定了嗎?看codes(從sort開始)應該是沒問題的
12/10 12:13, 6F
沒搞定 就像我圖片連結那樣 QQ ※ 編輯: demotion 來自: 61.64.86.93 (12/10 12:17) ※ 編輯: demotion 來自: 61.64.86.93 (12/10 12:22)

12/10 12:22, , 7F
你用VAR c; BY YYYY c;得到圖片的結果是對的啊。
12/10 12:22, 7F
中位數正確結果應該只有5筆吧? 以c來說就2008 2009 2010 2011 2012 各五筆中位數 謝謝大大 我解出來了 VAR c; BY YYYY; (BY後面只能填YYYY 多填c會如上面連結 一樣) 謝謝您 ※ 編輯: demotion 來自: 61.64.86.93 (12/10 12:38) ※ 編輯: demotion 來自: 61.64.86.93 (12/10 13:19)

12/10 13:17, , 8F
By YYYY c;的意思是YYYY和c的各種組合,你如果想只得到
12/10 13:17, 8F

12/10 13:17, , 9F
5筆,只能用by YYYY;
12/10 13:17, 9F

12/10 13:20, , 10F
太感謝您了 非常謝謝您
12/10 13:20, 10F

12/10 13:24, , 11F
不客氣,很開心你的問題終于解決了。
12/10 13:24, 11F

12/10 13:38, , 12F
學校沒有買EG嗎?
12/10 13:38, 12F
文章代碼(AID): #1IfdzFpj (Statistics)