数据设定为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
|