BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
SasStatistics
Pyrite | Level 9

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. 

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26
/* 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;
--
Paige Miller

View solution in original post

1 REPLY 1
PaigeMiller
Diamond | Level 26
/* 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;
--
Paige Miller

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 339 views
  • 0 likes
  • 2 in conversation