全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1432 7
2013-08-04
各位好!
       用SAS整理数据过程中发现如下问题,请教下大家:[img=0,1]file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/499707227/QQ/WinTemp/RichOle/VYZIS%5YP[R83~0W33M4GLT.jpg[/img]
y1 y2 y3 tp
1 . 3 3    2
. . . 1    .
. . 1 2    1
data c;set b;if  y1=y2=y3 then tp=1;
if y1=y2^=y3 then tp=2;
if  y1=y3^=y2 then tp=2;
if  y2=y3^=y1 then tp=2;
if y1^=y2^=y3  then tp=3;run;
我用以上程序可以得到表格中黑色数字类型,其实我是想得到标红的数字类型,具体来讲就是y1-y3中有一个数字那么tp为1如表格第三行,空值不算!
我的程序应该怎么写了,请赐教!谢谢!

[img]file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\499707227\QQ\WinTemp\RichOle\VYZIS%5YP[R83~0W33M4GLT.jpg[/img]

二维码

扫码加我 拉你入群

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

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

全部回复
2013-8-7 10:48:30
data a;                                                                                                                                 
input y1-y3;                                                                                                                           
cards;                                                                                                                                 
1 . 3                                                                                                                                   
. . .                                                                                                                                   
. . 1                                                                                                                                   
1 1 1                                                                                                                                   
;                                                                                                                                       
run;                                                                                                                                    
data b;                                                                                                                                 
set a;                                                                                                                                 
if y1 = . and y2=. and y3=. then tp=.;                                                                                                  
else if y1 ne . and y2 ne . and y3 ne . then tp =3;                                                                                    
else if y1=y2=. or y2=y3=. or y3=y1=. then tp =1;                                                                                       
else if y1 ne . or y2 ne . or y3 ne . then tp =2;                                                                                       
run;
二维码

扫码加我 拉你入群

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

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

2013-8-7 11:15:10
谢谢!同时欢迎新成员加入!你可以通过每天签到赚取积分,然后兑换成金币!祝好!
二维码

扫码加我 拉你入群

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

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

2013-8-7 11:35:52
y1         y2         y3         tp
1         .         3         2   
.         .         .         .   
.         .         1         1   
3       3       3      1
2        1      2      2
1        4      5      3
我忘记还有两种情况没有添加进去,刚应用了一下你的程序,下面两种情况实现不了,不知还有何高见?
二维码

扫码加我 拉你入群

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

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

2013-8-7 14:24:27
觉得数据的呈现方式有15种,处理方式有7种,求指正,求简化
复制代码
二维码

扫码加我 拉你入群

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

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

2013-8-7 14:29:31
data a;                                                                                                                                 
input y1-y3;                                                                                                                           
cards;                                                                                                                                 
1      .      3                                                                                                                        
.      .      .                                                                                                                        
.      .      1                                                                                                                        
3      3      3                                                                                                                        
2      1      2                                                                                                                        
1      4      5                                                                                                                        
;                                                                                                                                       
run;                                                                                                                                    
data b;                                                                                                                                 
set a;                                                                                                                                 
if y1 = . and y2=. and y3=. then tp=.;                                                                                                  
else if y1 = y2 =y3 then tp =1;                                                                                                         
else if y1=y2=. or y2=y3=. or y3=y1=. then tp =1;                                                                                       
else if y1=y2 and y3=. or y2=y3 and y1=. or y3=y1 and y2=. then tp =1;                                                                  
else if y1 = y2  or y2 = y3 or y3 = y1 then tp =2;                                                                                      
else if y1 ne y2 ne y3 and y1 ne . and y2 ne . and y3 ne . then tp =3;                                                                  
else if y1 ne . or y2 ne . or y3 ne . then tp =2;                                                                                       
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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