作者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