全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3120 14
2012-05-05
以下数列:ID    year   code  size

001 1998 A 0.1
001 1999 A 0.3
001 2000 A 0.5
001 2001 A 0.6
001 2002 A 0.3
001 2003 A 0.2
002 1998 B 0.1
002 1999 B 0.3
002 2000 B 0.5
002 2001 B 0.6
002 2002 B 0.3
002 2003 B 0.2

003 1998 B 0.1
003 1999 B 0.3
003 2000 B 0.5
003 2001 B 0.6
003 2002 B 0.3
003 2003 B 0.2

首先要算出每个每个行业(code)对应每一年的size的平均数,然后在得出size减去对应的平均数,这样的程序应该怎样写?

跪谢啊,毕业论文快死掉了。。。
二维码

扫码加我 拉你入群

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

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

全部回复
2012-5-5 12:43:16
proc sql;
create table temp1 as
select *,mean(size) as size_mean
from temp group by code;
quit;
data temp1;
set temp1;
xx=size-size_mean;
run;
二维码

扫码加我 拉你入群

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

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

2012-5-6 17:57:20
mymine 发表于 2012-5-5 12:43
proc sql;
create table temp1 as
select *,mean(size) as size_mean
赞!!!!!
二维码

扫码加我 拉你入群

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

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

2012-5-7 10:46:54
mymine 发表于 2012-5-5 12:43
proc sql;
create table temp1 as
select *,mean(size) as size_mean
代码有误哦,既然用了集合函数,前面不能再有没出现在group by中的变量哦
应为
proc sql;
create table temp1 as select year , code , mean(size) as m from temp group by year ,code ;
quit;
二维码

扫码加我 拉你入群

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

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

2012-5-7 10:55:01
还是帮你写完吧,前面已经求出了不同行业在不同年的size的均数m,现在将你表中的size变量更新为size-m即与均数的差;代码如下(注意temp为我默认的你这张表的名称)
proc sql ;
update temp set size=size-(select m from temp1 where temp.year=temp1.year and temp.code=temp1.code);
quit;
二维码

扫码加我 拉你入群

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

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

2012-5-7 11:33:07
pl172231 发表于 2012-5-7 10:46
代码有误哦,既然用了集合函数,前面不能再有没出现在group by中的变量哦
应为
proc sql;
大侠,你试验一下就知道谁对谁错了
“前面不能再有没出现在group by中的变量”哪儿说的呀?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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