全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1385 3
2011-12-22

1、 表中有5列,第1列名为CITY,其值是中国东部沿海地区的5个城市,第2列为公司名,第3列为人名,第4列为SEX,值有‘F’,’M’两类,第五列为销售收入。现在需要进行分类求和,结果形如下表,需要在空格上填上销售收入总额。请简述如何操作

 

F

M

上海

 

 

天津

 

 

深圳

 

 

珠海

 

 

大连

 

 

青岛

 

 









应该类似于EXCEL里面数据透视表的结果?

二维码

扫码加我 拉你入群

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

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

全部回复
2011-12-22 00:08:46
附上数据表

data b;
input city$        sa$ lo;
cards;
大连 f 7
大连 m 13
大连 f 19
大连 m 25
青岛 m 8
青岛 f 14
青岛 m 20
青岛 f 26
上海 f 3
上海 m 9
上海 f 15
上海 m 21
深圳 m 5
深圳 f 11
深圳 m 17
深圳 f 23
天津 m 4
天津 f 10
天津 m 16
天津 f 22
珠海 f 6
珠海 m 12
珠海 f 18
珠海 m 24
;
二维码

扫码加我 拉你入群

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

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

2011-12-22 09:40:58
spssone 发表于 2011-12-22 00:08
附上数据表

data b;
复制代码
二维码

扫码加我 拉你入群

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

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

2011-12-22 10:21:16
提供一种不用库函数的方法:

data _null_;
if _n_ = 1 then do;
  dcl hash h(ordered:'y');
  h.definekey("city");
  h.definedata("city","f","m");
  h.definedone();
end;
set b end = eof;
if h.find() = 0 then do;
  if sa = 'f' then f + lo;
  else if sa = 'm' then m + lo;
  h.replace();
end;else do;
  m = 0;
  f = 0;
  if sa = 'f' then f = lo;
  else if sa = 'm' then m = lo;
  h.add();
end;
if eof then h.output(dataset:"c");
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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