sas - Biderectional Vlookup - 同一张表中的标志 - Sas
问题描述
我需要这样做:
表格1:
ID Cod.
1 20
2 102
4 30
7 10
9 201
10 305
表2:
ID Cod.
1 20
2 50
3 15
4 30
5 25
7 10
10 300
现在,我得到了一个像这样带有外部连接的表:
ID Cod. ID1 Cod1.
1 20 1 20
2 50 . .
. . 2 102
3 15 . .
4 30 4 30
5 25 . .
7 10 7 10
. . 9 201
10 300 . .
. . 10 305
现在我想添加一个标志,告诉我 ID 是否有共同值,所以:
ID Cod. ID1 Cod1. FLag_ID Flag_cod:
1 20 1 20 0 0
2 50 . . 0 1
. . 2 102 0 1
3 15 . . 1 1
4 30 4 30 0 0
5 25 . . 1 1
7 10 7 10 0 0
. . 9 201 1 1
10 300 . . 0 1
. . 10 305 0 1
我想知道如何获得 flag_ID,特别是涵盖 ID = 2 或 ID = 10 的情况。
谢谢
解决方案
您可以按合并进行分组,id
以便计算和比较详细信息。
例子
data table1;
input id code @@; datalines;
1 20 2 102 4 30 7 10 9 201 10 305
;
data table2;
input id code @@; datalines;
1 20 2 50 3 15 4 30 5 25 7 10 10 300
;
proc sql;
create table got as
select
table2.id, table2.code
, table1.id as id1, table1.code as code1
, case
when count(table1.id) = 1 and count(table2.id) = 1 then 0 else 1
end as flag_id
, case
when table1.code - table2.code ne 0 then 1 else 0
end as flag_code
from
table1
full join
table2
on
table2.id=table1.id and table2.code=table1.code
group by
coalesce(table2.id,table1.id)
;
您可能还想研究
Proc COMPARE
和BY
推荐阅读
- python - python如何确定在函数中将变量分类为局部变量还是非局部变量?
- html - 折线图在模态框中未正确显示
- svn - 从 SVN 存储库中获取特定修订版中的文件
- c# - 在 Unity 中管理与游戏时间相关的事件的最佳方式是什么?
- kubernetes - 为什么我们需要在 Kubernetes 中设置 Pod 副本?
- wordpress - post_type page redirect to random post
- angular - NgRx 效果 - 获取商店的值然后管道进入服务调用时的类型错误
- vim - 使用 vim 正则表达式在匹配字符串之前/之后添加/追加字符或字符串
- asp.net-mvc - I want to use Automapper in Business Layer of my ASP.NET MVC application
- gpu - Cuda driver error 700 in call at file 'geryon/nvd_timer.h' in LAMMPS