全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1210 4
2011-11-11
数据集见:
a  b
1  1
1  2
1  1
2  1
2  2
3  1
3  4
如果要对变量a进行分类,对b求和,
然后建立新的数据集,
怎么编程?
二维码

扫码加我 拉你入群

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

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

全部回复
2011-11-11 18:51:17
data test;
input a  b;
cards;
1  1
1  2
1  1
2  1
2  2
3  1
3  4
;
run;
data need1(drop=temp);
   set test(rename=(b=temp));
   by a;
   if first.a then do;
      b=0;
   end;
   b+temp;
   if last.a then output;
run;

proc means data=test noprint nway;
   class a;
   var b;
   output out=need2(drop=_:) sum=;
run;
二维码

扫码加我 拉你入群

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

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

2011-11-11 21:07:23
yugao1986写的还是不错的。不过并不完美。

首先,data步用到"by a;"语句时,要求set里的数据集——test已经按a变量排过序。

故在data need1之前要加上proc sort过程。

其次,这里的proc means没多少用处,删掉好了。

---------------------------------------------------------------------------

如果只是输出,那下面的代码倒也可以用一用:

复制代码

二维码

扫码加我 拉你入群

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

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

2011-11-12 01:57:59
我同意楼上的
二维码

扫码加我 拉你入群

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

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

2011-11-12 17:31:26
proc sql;
create table y as select a,sum(b) as sum ,count(b) as count from x
group by a;
quit;
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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