Hi All,
Need small help. I have data like below
| A | Unique_ID | Version |
| Murder | 1 | 1 |
| Theft | 1 | 2 |
| dacoity | 1 | 3 |
| Murder | 2 | 1 |
| Murder | 2 | 2 |
I want an output like below:
| Unique ID | Previous_A | Present_A |
| 1 | Theft | Dacoity |
| 2 | Murder | Murder |
Basically if for Unique_ID there is a version. For the last version and before last version if Column "A" is different then I need 2 column to be created Previous_A and Present_A. Previous A will hold the 2nd last version value and Present A will hold the last version value.
data have;
input A $ Unique_ID Version;
datalines;
Murder 1 1
Theft 1 2
dacoity 1 3
Murder 2 1
Murder 2 2
;
data want;
set have;
by Unique_ID Version;
lagA=lag1(A);
if last.Unique_ID then do;
Previous_A=lagA;
Present_A=A;
output;
end;
keep Unique_ID Previous_A Present_A;
run;
data have;
input A $ Unique_ID Version;
datalines;
Murder 1 1
Theft 1 2
dacoity 1 3
Murder 2 1
Murder 2 2
;
data want;
set have;
by Unique_ID Version;
lagA=lag1(A);
if last.Unique_ID then do;
Previous_A=lagA;
Present_A=A;
output;
end;
keep Unique_ID Previous_A Present_A;
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.