作者demotion (pedagog)
看板Statistics
標題[程式] 不同項目求同年度中位數
時間Tue Dec 10 10:41:15 2013
軟體: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)
1F:→ BugEater:你不是應該打開a2這個file嗎? 12/10 11:13
A1 A2這些檔事我臨時假設的,沒按照圖片
※ 編輯: demotion 來自: 61.64.86.93 (12/10 11:20)
2F:→ BugEater:你可以看看log是否有warning嗎?因為結果看起來不對 12/10 11:26
LOG 沒有WARNING >< 不知道哪裡寫錯了 哭哭
※ 編輯: demotion 來自: 61.64.86.93 (12/10 11:29)
3F:→ BugEater:試試這個。 第一行改成proc means data=abc; 12/10 11:32
4F:→ BugEater:跑之前把所有data file關閉。還有數據要sort一下先。 12/10 11:33
5F:→ BugEater:實在不行把SAS關掉重新打開試試。y 12/10 11:33
這是我的程式碼 我現在是以求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)
6F:→ BugEater:所以你搞定了嗎?看codes(從sort開始)應該是沒問題的 12/10 12:13
沒搞定 就像我圖片連結那樣 QQ
※ 編輯: demotion 來自: 61.64.86.93 (12/10 12:17)
※ 編輯: demotion 來自: 61.64.86.93 (12/10 12:22)
7F:→ BugEater:你用VAR c; BY YYYY c;得到圖片的結果是對的啊。 12/10 12:22
中位數正確結果應該只有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)
8F:→ BugEater:By YYYY c;的意思是YYYY和c的各種組合,你如果想只得到 12/10 13:17
9F:→ BugEater:5筆,只能用by YYYY; 12/10 13:17
10F:→ demotion:太感謝您了 非常謝謝您 12/10 13:20
11F:→ BugEater:不客氣,很開心你的問題終于解決了。 12/10 13:24
12F:推 gawyfish:學校沒有買EG嗎? 12/10 13:38