楼主: longway999
15608 9

[原创博文] 请教:SAS中如何分组汇总 [推广有奖]

  • 0关注
  • 0粉丝

已卖:42份资源

大专生

55%

还不是VIP/贵宾

-

威望
0
论坛币
885 个
通用积分
0.7500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
561 点
帖子
27
精华
0
在线时间
65 小时
注册时间
2005-8-17
最后登录
2025-2-12

楼主
longway999 发表于 2006-3-16 16:09:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
<P>刚学SAS,有个小问题请教一下各位大侠:</P>
<P>假设有一组数据 -----3个变量:收入(inc)、支出(EXP)、所得税(TAX),N个观测。</P>
<P>请问如何进行分组汇总,比如按收入高低分成3等份 ,然后求高、中、低3个收入组的收入、支出、所得税的均值。</P>
二维码

扫码加我 拉你入群

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

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

关键词:各位大侠 所得税 EXP tax 小问题 所得税 如何

回帖推荐

sumc 发表于5楼  查看完整内容

分组汇总比较简单,关键是按收入的高低来分为三组的实现. 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 a ...

zzheng722 发表于6楼  查看完整内容

楼上的贴 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 ...

本帖被以下文库推荐

沙发
kirahu 发表于 2006-3-17 16:57:00

用proc mean过程

藤椅
sillyfeng 发表于 2006-3-17 22:40:00

用by

板凳
yaolixiang 发表于 2007-3-23 17:55:00
sql

报纸
sumc 发表于 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;

已有 1 人评分经验 论坛币 收起 理由
bakoll + 5 + 10 热心帮助其他会员

总评分: 经验 + 5  论坛币 + 10   查看全部评分

地板
zzheng722 发表于 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编辑过]

已有 1 人评分经验 论坛币 收起 理由
bakoll + 5 + 10 热心帮助其他会员

总评分: 经验 + 5  论坛币 + 10   查看全部评分

7
maoxinshu 发表于 2007-3-26 10:13:00

用proc rank可以直接分组

8
ecree 发表于 2008-6-20 22:42:00

但是,如果要将分组的结果输出成一个个数据集,那该怎么写?

9
fei_xiang5718 发表于 2008-7-19 16:00:00
如果要将分组的结果输出成一个个数据集,那该怎么写

10
pandasasa 发表于 2010-1-7 11:47:56
firstly,use proc rank for grouping,secondly,use proc means or proc summary for mean;

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 21:42