SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 723|回复: 3
打印 上一主题 下一主题

求助:如何根据变量的值生成新变量?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-4-5 15:55:34 | 只看该作者

求助:如何根据变量的值生成新变量?

[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

希望高手给点解决办法!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-4-6 12:02:36 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2012-4-6 20:26:04 | 只看该作者

Re: 求助:如何根据变量的值生成新变量?

学到了,根据byes的回答看懂了楼主的问题。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2012-4-6 20:41:42 | 只看该作者

Re: 求助:如何根据变量的值生成新变量?

[quote="johnlxd007":yr48oyoj]学到了,根据byes的回答看懂了楼主的问题。[/quote:yr48oyoj]
谢谢byes,这个问题困扰了好久了~ <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-9 04:28 , Processed in 0.088775 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表