MK, This is a great question. In modeling communities, sometime you hear things like 'informativeness of the missing". This is what this question is about. Suppose this is your code. data merge2; merge source1 (in=a) source(=b); by accountnumber; if a; run; Since you do left join, so I add the line "If a" to keep everybody from source1. Your question therefore is: for those in source2 but not in source1, since they never got emails. you are comfortable setting the variable to 0. But, there are a group of accounts (that are on both source1 and source2) who had opportunity to have receive emails, but did not respond. Their value, before mergeing, is set at 0. You DO NOT want to mix them with those who are not found on source1. One idea is this data merge2; merge source1(in=a) source2(in=b); by accountnumber; if a; if a and not b the new_flag2=-1; else if a and current_responseflag=1 then new_flag2=1; else new_flag2=0; Hope this helps. Best Regards. Jason Xin
... View more