我只是在学习SAS.这是一个非常简单的问题 - 我可能会过度思考它.
我有一个调用的数据集people_info,其中一个变量是SocialSecurityNum.我有一个名为invalid_ssn单变量的表:唯一和无效的SocialSecurityNum观察.
我希望有一个DATA步骤(或PROC SQL步骤),invalid_people_info如果SocialSecurityNum人(观察者)与invalid_ssn表中的某个值匹配,则输出.否则,它将输出回people_info.
最好的方法是什么?
编辑:更多信息,澄清......
people_info 看起来像这样:
name SocialSecurityNum
joe 123
john 456
mary 876
bob 657
Run Code Online (Sandbox Code Playgroud)
invalid_ssn 看起来像这样:
SocialSecurityNum
456
876
Run Code Online (Sandbox Code Playgroud)
我想要的是people_info改变(到位),看起来像这样:
name SocialSecurityNum
joe 123
bob 657
Run Code Online (Sandbox Code Playgroud)
和一个新表,称为invalid_people_info这样:
name SocialSecurityNum
john 456
mary 876
Run Code Online (Sandbox Code Playgroud)
Hong Ooi显示的数据步骤很棒,但您也可以使用proc sql执行此操作,而无需先进行排序,也无需实际进行完全合并.
proc sql noprint;
create table invalid_people_info as
select *
from people_info
where socialsecuritynum in (select distinct socialsecuritynum from invalid_ssn)
;
create table people_info as
select *
from people_info
where socialsecuritynum not in (select distinct socialsecuritynum from invalid_ssn)
;
quit;
Run Code Online (Sandbox Code Playgroud)
这只是在无效ssn的不同列表中选择ssn所在的所有行(不是).
| 归档时间: |
|
| 查看次数: |
19729 次 |
| 最近记录: |