全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1280 7
2012-04-26
先举个简单的例子,假设一个数据,x是字符型变量
id    x
1    a,b,c
2    a,d,e,f

如何将x中用逗号隔开的数值一个个提取出来做为新变量?

希望的结果:
id  x          x1    x2    x3    x4
1  a,b,c      a      b     c     
2  a,d,e,f    a      d     e      f


现在我用的是比较笨的办法,先算出数据中x用逗号隔开的数值的最大个数(这里是4个),再用do 和array来做

data test;
        input id x:$32.;
        cards;
        1 a,b,c
        2 a,d,e,f
;

data test2;
        set test;
        array a {4} $ x1-x4;
        do i=1 to 4;
        a{i}=scan(x,i);
        end;
run;


有没有比较高级的技巧,比如,先确定x这个变量用逗号隔开的数值的最大个数(例如n),然后自动生成x1-xn新变量,将x中对应的数值填充进去,若x中用逗号隔开的数值个数小于n,则放空值。

谢谢指教。





二维码

扫码加我 拉你入群

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

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

全部回复
2012-4-26 17:55:20
用excel的分列数据吧,直接
二维码

扫码加我 拉你入群

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

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

2012-4-26 22:00:11
So, this should be what u want.

复制代码

二维码

扫码加我 拉你入群

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

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

2012-4-26 22:08:58
谢谢2楼啦,看来还是只能用宏实现了呀。
二维码

扫码加我 拉你入群

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

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

2012-4-26 23:30:03
have learned. Gao Shou!
二维码

扫码加我 拉你入群

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

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

2012-4-26 23:36:33
may I ask a question: why it is "k" in sql step?
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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