全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1545 4
2009-10-30
请问一个表的制法


A   B   C
1   1   100
0   1    200
1   1    300
0   0    400
1   0    200
....

希望制成 , 当A或B是1时, C的平均:  (要在一个表内)
        C
A    200
B    200

有高手能指点一下吗? 谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2009-10-30 09:26:22
最笨的办法

data test;
input A   B   C;
datalines;
1   1   100
0   1    200
1   1    300
0   0    400
1   0    200
;
run;
proc sql;
create table result as
  select 'A' as VAR format=$3. label='VAR' , mean(c) as C length=8 label='C'
   from test
   where a=1
     union all
  select 'B' as VAR format=$3. label='VAR' , mean(c) as C length=8 label='C'
   from test
   where b=1;
     
quit;
二维码

扫码加我 拉你入群

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

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

2009-10-31 13:30:01
data test;
input A   B   C;
datalines;
1   1    100
0   1    200
1   1    300
0   0    400
1   0    200
;

proc format;
  value a
        1='A'
  ;
  value b
        1='B';
run;

proc tabulate data=test format=8.;
  class a b/preloadfmt exclusive ;
  var c;
  table (a='' b=''),c*mean=' ';
  format a a. b b.;
run;
二维码

扫码加我 拉你入群

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

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

2009-11-4 09:15:21
3# guoluo


感谢两位高手的回答, 都能达到目的. 不过, 我没有想到, format 还能这样用, 太出乎意料了.

谢谢
二维码

扫码加我 拉你入群

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

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

2009-11-4 10:47:52
记 录 学 习
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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