全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1425 6
2013-07-23
悬赏 25 个论坛币 已解决
小弟有一sas问题请教各位sas达人(可能要用marco):
现在有以下数据:

城市  区域       板块          规交1     规交2
上海  宝山  大华板块         7号线    737,738
上海  宝山  大华板块          11号线    58,78
上海  嘉定  嘉定新城板块    3号线      嘉环二线
上海  嘉定  嘉定新城板块     11号线   

希望合并之后变为以下数据:


城市  区域       板块          规交1     规交2            规交3     规交4
上海  宝山  大华板块         7号线    737,738       11号线      58,78
上海  嘉定  嘉定新城板块    3号线      嘉环二线  11号线


原始数据一共将近3000条记录,所以用常规的merge束手无策,请各位大爷想想办法。小弟在此谢过!

最佳答案

ziyenano 查看完整内容

data ex; infile cards missover; input city $ field $ module $ traffic1 $ traffic2 $; cards; 上海 宝山 大华板块 7号线 737,738 上海 宝山 大华板块 11号线 58,78 上海 嘉定 嘉定新城板块 3号线 嘉环二线 上海 嘉定 嘉定新城板块 11号线 ; run; proc sql; create table ex1 as select * from (select city,field,module,traffic1 as traffic from ex union ...
二维码

扫码加我 拉你入群

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

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

全部回复
2013-7-23 12:51:58
data ex;
infile cards missover;
input city $ field $ module $  traffic1 $   traffic2 $;
cards;
上海  宝山  大华板块         7号线    737,738
上海  宝山  大华板块          11号线    58,78
上海  嘉定  嘉定新城板块    3号线      嘉环二线
上海  嘉定  嘉定新城板块     11号线   
;
run;

proc sql;
create table ex1 as
select * from
(select city,field,module,traffic1 as traffic from ex
union all
select city,field,module,traffic2 as traffic from ex)
order by city,field,module;
quit;



proc transpose data=ex1 out=ex2(drop=_name_);
by city field module;
var traffic;
run;
二维码

扫码加我 拉你入群

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

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

2013-7-23 13:14:03
你这里同一个【城市+区域+板块】组合会出现多少次
如果最多出现两次的话,就比较好办
如果次数不定就有些麻烦了

只不过问这种问题的
如果不是最后表格展示需要
基本可以通过改进算法来避免这种转换
二维码

扫码加我 拉你入群

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

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

2013-7-23 13:41:13
playmore 发表于 2013-7-23 13:14
你这里同一个【城市+区域+板块】组合会出现多少次
如果最多出现两次的话,就比较好办
如果次数不定就有些 ...
有几次出现几次……T.T
二维码

扫码加我 拉你入群

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

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

2013-7-23 14:02:38
顶!!!!!!
二维码

扫码加我 拉你入群

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

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

2013-7-30 15:06:16
data ex;
infile cards missover;
length module $20.;
input city $ field $ module $  traffic1 $   traffic2 $;
cards;
上海  宝山  大华板块         7号线    737,738
上海  宝山  大华板块          11号线    58,78
上海  嘉定  嘉定新城板块    3号线      嘉环二线
上海  嘉定  嘉定新城板块     11号线   
;
run;

proc sort data=ex;
by city field module;
run;

data want;
set ex;
by city field module;
retain traffic_new1;
traffic_new=catx(',',of traffic1-traffic2);
if first.module then traffic_new1=traffic_new;
else traffic_new1=catx(',',traffic_new1,traffic_new);
if last.module then output;
drop traffic1 traffic2 traffic_new;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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