全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
15450 9
2006-03-16
<P>刚学SAS,有个小问题请教一下各位大侠:</P>
<P>假设有一组数据 -----3个变量:收入(inc)、支出(EXP)、所得税(TAX),N个观测。</P>
<P>请问如何进行分组汇总,比如按收入高低分成3等份 ,然后求高、中、低3个收入组的收入、支出、所得税的均值。</P>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2006-3-17 16:57:00

用proc mean过程

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2006-3-17 22:40:00

用by

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-3-23 17:55:00
sql
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-3-23 19:02:00

分组汇总比较简单,关键是按收入的高低来分为三组的实现.

proc univariate data=temp;

var inc;

output out=temp1 pctlpts=33 67 pctlpre=pre;

run;

输出数据集将包含33%分位数和67%分位数.然后建立分组变量.分组别来计算平均值.

data a;

set temp;

if _n_=1 then set temp1;

if inc<=pre33 then gr="第一组";

else if inc<=pre67 then gr="第二组";

else gr="第三组";

run;

proc sql;

select avg(inc) as avginc,

avg(exp) as avgexp,

avg(tax) as avgtax

from a

group by gr;

quit;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-3-23 21:45:00

楼上的贴 well-done! 我再加一些:

1. proc sql 部分,与以下code相同:

proc means data=a mean std median p25 p75 min max maxdec=2;

class gr;

var inc exp tax;

run;

Also you can use proc tabulate, proc summary, proc univariate to get 收入、支出、所得税的均值.

2. 如果你想算P 值, 比较三组的收入、支出、所得税的均值的不同,use proc glm:

proc glm data=a;

model inc=gr;

run;

proc glm data=a;

model exp=gr;

run;

proc glm data=a;

model tax=gr;

run;

inc 部分的P值没啥意思,因为你就是inc用分的三组。有点象自己跟自己比.





[此贴子已经被作者于2007-3-25 8:14:39编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群