I tried using hash objects and could not get it to work. But I believe the following code works using perl regular expressions: data temp_1; input subject $ arm $; cards; 10000 NJ 10001 PA 10001 CA 10001 CA 10002 NA 10002 PA 10002 NA 10003 NJ 10004 NJ ; data temp_2; set temp_1 end=last; length old_subject $ 5 arm_list $ 100; retain old_subject arm_list; keep old_subject arm_list; rename old_subject = subject arm_list = arm; if _N_ = 1 then do; old_subject = subject; arm_list = arm; end; if old_subject = subject then do; if ^prxmatch('/' || strip(arm) || '/', arm_list) then arm_list = strip(arm_list) || ' + ' || strip(arm); end; else do; arm_list = prxchange('s/^[ +]+(.*)/$1/', 1, arm_list); output; arm_list = arm; old_subject = subject; end; if last then output; run;
... View more