Assume I have the following table:
| row | ID | dummy_variable | my_new_dummy |
| 1 | 1 | 0 | |
| 2 | 1 | 1 | |
| 3 | 1 | 0 | 1 |
| 4 | 2 | 0 | |
| 5 | 2 | 0 | |
| 6 | 2 | 0 | |
| 7 | 2 | 0 | |
| 8 | 2 | 1 | |
| 9 | 2 | 0 | 1 |
so, as you can see we have two unique ID (1 and 2), for each of the unique id we have a column "dummy_variable" which has a 1 in it. The first row AFTER dummy_variable = 1 I want to "mark" by creating a new column: "my_new_dummy_variable" which should have the value 1 on the first row after dummy_variable = 1.
Any ideas on how to do this?
Thanks.
/* UNTESTED CODE */
data want;
set have;
prev_dummy_variable=lag(dummy_variable);
if prev_dummy_variable=1 then my_new_dummy=1;
else my_new_dummy=.;
drop prev_dummy_variable;
run;
/* UNTESTED CODE */
data want;
set have;
prev_dummy_variable=lag(dummy_variable);
if prev_dummy_variable=1 then my_new_dummy=1;
else my_new_dummy=.;
drop prev_dummy_variable;
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!
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.