数据设定为A组ID值包含B组ID值,反言之B组ID值必然会在A组中出现。
数据处理仅对B组ID值对应的A组观测的 NEXIST DE NDE PONE 共4个变量值进行更新。 两组数举例如下,
数据A
变量ID TYPE STATUS NEXIST DE NDE PONE
hij MC ZC 1 0 0 0
aaa MC ZC 1 0 0 0
bbb MC ZC 1 0 0 0
fgh MC QX 1 0 0 0
数据B
变量ID TYPE STATUS TIME
aaa PER ZC 40
bbb PER QX 29
更新规则如下:
若A组数据ID存在对应的B组ID,则将相应A组ID观测的NEXIST值更改为0,若A组数据ID没有对应的B组ID观测,A组数据相应NEXIST值仍保持为1.
当A组数据ID值在B组数据存有对应ID值,且B组对应ID观测 STATUS为QX时,A组相应观测DE值变为1,否则DE保持为0
当A组数据ID值存在B组数据对应ID值,且B组对应ID观测 STATUS为ZC时,A组相应NDE值变为1,否则NDE保持为0
当A组数据ID值存在B组数据对应ID值,且B组对应ID观测 TIME小于等于30时,A组相应PONE值变为1,否则PONE保持为0
理想结果为 数据A
变量ID TYPE STATUS NEXIST DE NDE PONE
hij M ZC 1 0 0 0
aaa M ZC 0 0 1 0
bbb M ZC 0 1 0 1
fgh M QX 1 0 0 0
SAS新手,想了很久也没有结果,所以请大家帮忙解答,谢谢大家了。不知道逻辑写的清不清楚,已经尽量了。
对比A组4各变更变量NEXIST DE NDE和PONE的原始数据与更新后数据
更新前
aaa M ZC 1 0 0 0
bbb M ZC 1 0 0 0
更新后
aaa M ZC 0 0 1 0
bbb M ZC 0 1 0 1