SAS中文论坛

标题: 【求助】如何拆分用分号隔开的变量 [打印本页]

作者: shiyiming    时间: 2009-3-24 18:26
标题: 【求助】如何拆分用分号隔开的变量
我数据集中有个变量,是几个公司的名字组成,每个公司以“;”结尾。

数据集如下
stockcd    var
1             A; B; C; D;
2              B; C; D;

我想变成这样:
stockcd    var
1             A
1             B
1             C
1             D
2             B
2             C
2             D

请教如何实现?谢谢!!!
作者: shiyiming    时间: 2009-3-25 08:34
标题: Re: 【求助】如何拆分用分号隔开的变量
[code:1zpf9y2y]
data a;
    length x $5. y $20.;
    infile datalines missover ;
    input ;
    _in=trim(_infile_);
    x=strip(scan(_in, 1, ' '));
    _in=substr(_in, length(x)+1, length(_in));
    n=count(_in,';');
    do i=1 to n;
       y=strip(scan(_in, i, ';'));
       output;
    end;
    keep x y;
datalines4;
1 abd; dfef; evba;
2 bad; bea; beaera;beaf;
;;;;
run;
[/code:1zpf9y2y]
作者: shiyiming    时间: 2009-3-25 18:07
标题: Re: 【求助】如何拆分用分号隔开的变量
[code:3s2af52y]data a;
infile cards missover pad length=len ;
length A1 B1 $ 200 ;
input @01 x $varying200. len ;
A1=compress(scan(x,1,";"),compress(scan(x,1,";"),'0123456789')) ;
B1=compress(scan(x,1,";"),' 0123456789') ;
OUTPUT ;
do i=2 by 1 while(scan(x,i,";") ne ' ') ;
        B1=compress(scan(x,i,";")) ;
        output ;
end ;
keep A1 B1 ;
cards4 ;
1 A; B; C; D;
2 B; C; D;
;;;;
run ;
[/code:3s2af52y]




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2