先举个简单的例子,假设一个数据,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,则放空值。
谢谢指教。