SAS中文论坛

标题: 求助:如何根据变量的值生成新变量? [打印本页]

作者: shiyiming    时间: 2012-4-5 15:55
标题: 求助:如何根据变量的值生成新变量?
[code:1o76xtxa]data temp;
input x $20.;
cards;
HPV51 HPV52 HPV56  
HPV51  
HPV45  
HPV39 HPV68  
HPV39 HPV52 HPV82  
HPV39 HPV52  
HPV39 HPV51  
HPV39  
HPV33  
HPV33  
HPV33 HPV68  
HPV33 HPV53  
HPV33 HPV52  
HPV33 HPV52  
HPV33   
HPV31  
HPV31  
HPV31 HPV52 HPV26  
run;
[/code:1o76xtxa]
如何才能将上面的变量根据变量的值生成新变量,例如:如果变量x里含有HPV51 则产生新变量HPV51 其值为1, 没有则其值为0
HPV51 HPV52 HPV56  HPV39 HPV68
1         1         1          0          0
1          0         0          0          0

希望高手给点解决办法!
作者: shiyiming    时间: 2012-4-6 12:02
标题: Re: 求助:如何根据变量的值生成新变量?
[code:10sv7sov]

data m;
        set temp;
        length var $5;
        j=1;
        i=_n_;
        do while(scan(x,j)^="");
                var=scan(x,j);
                output;
                j=j+1;
        end;
run;
proc freq data=m noprint;
        tables i*var /out=m SPARSE;
run;
proc transpose data=m out=result(drop=i _name_ _label_);
        by i;
        id var;
        var count;
run;
[/code:10sv7sov]
作者: shiyiming    时间: 2012-4-6 20:26
标题: Re: 求助:如何根据变量的值生成新变量?
学到了,根据byes的回答看懂了楼主的问题。
作者: shiyiming    时间: 2012-4-6 20:41
标题: Re: 求助:如何根据变量的值生成新变量?
[quote="johnlxd007":yr48oyoj]学到了,根据byes的回答看懂了楼主的问题。[/quote:yr48oyoj]
谢谢byes,这个问题困扰了好久了~ <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->




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