全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1710 7
2013-07-28
悬赏 15 个论坛币 已解决
数据第一步已经变成如下的形式:


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

现在要变成如下形式:

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

把逗号作为分隔符,每个交通工具都放在一格里。

最佳答案

你的太阳 查看完整内容

data a; input city :$8. distr :$8. bk :$20. gj :$100.; cards; 上海 宝山 大华板块 7号线,737,738,11号线,58,78 上海 嘉定 嘉定新城板块 3号线,嘉环二线,11号线 ; run; proc sql ; select max(countc(gj,','))+1 into :maxline from a; quit; data b; set a; array line(&maxline) $20.; do i = 1 to countc(gj,',')+1; line(i) = scan(gj,i,','); if i = countc(gj,',')+ ...
二维码

扫码加我 拉你入群

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

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

全部回复
2013-7-28 17:35:27
data a;
input city :$8. distr :$8. bk :$20. gj :$100.;
cards;
上海  宝山  大华板块            7号线,737,738,11号线,58,78
上海  嘉定  嘉定新城板块        3号线,嘉环二线,11号线
;
run;

proc sql ;
        select max(countc(gj,','))+1 into :maxline
        from a;
quit;

data b;
        set a;
        array line(&maxline)  $20.;
        do i = 1 to countc(gj,',')+1;
                line(i) = scan(gj,i,',');
                if i = countc(gj,',')+1 then output;
        end;
        drop i;
run;
二维码

扫码加我 拉你入群

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

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

2013-7-28 17:52:32
数据第一步已经变成如下的形式:


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

现在要变成如下形式:

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

把逗号作为分隔符,每个交通工具都放在一格里。


顶!!!!!!!
二维码

扫码加我 拉你入群

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

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

2013-7-28 18:28:30
data a;
input city :$8. distr :$8. bk :$20. gj :$100.;
cards;
上海  宝山  大华板块            7号线,737,738,11号线,58,78
上海  嘉定  嘉定新城板块        3号线,嘉环二线,11号线
;
run;
data b;set a end=lst;
n=compress(gj,',','k');
m=count(n,',')+1;
if _N_=1 then max=m;
retain max;
if m>max then max=m;
if lst then call symput('max',left(max));
drop n m;
run;
data c;set b;
array gjs(&max.) $10.;
do i=1 to &max.;
     gjs(i)=scan(gj,i,',');
end;
drop  i max gj;
run;

二维码

扫码加我 拉你入群

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

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

2013-7-29 12:39:30
你的太阳 发表于 2013-7-28 17:35
data a;
input city :$8. distr :$8. bk :$20. gj :$100.;
cards;
thx!!!
二维码

扫码加我 拉你入群

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

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

2013-7-29 15:19:52
不错啊,学习~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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