Hello All,
I am stuck with this issue where I want to add when there is change in flag value. Example:
ID Flag
1 0
1 1
1 1
1 1
2 1
2 0
2 0
2 1
2 1
2 0
2 0
3 1
3 1
3 1
3 1
4 0
4 0
4 0
4 1
4 1
Output expected:
ID Flag Cnt
1 0 1
1 1 2
1 1 2
1 1 2
2 1 1
2 0 2
2 0 2
2 1 3
2 1 3
2 0 4
2 0 4
3 1 1
3 1 1
3 1 1
3 1 1
4 0 1
4 0 1
4 0 1
4 1 2
4 1 2
Use the BY mechanism:
data have;
input ID Flag;
datalines;
1 0
1 1
1 1
1 1
2 1
2 0
2 0
2 1
2 1
2 0
2 0
3 1
3 1
3 1
3 1
4 0
4 0
4 0
4 1
4 1
;
data want;
set have;
by id flag notsorted;
if first.id then cnt = 0;
if first.flag then cnt + 1;
run;
Use the BY mechanism:
data have;
input ID Flag;
datalines;
1 0
1 1
1 1
1 1
2 1
2 0
2 0
2 1
2 1
2 0
2 0
3 1
3 1
3 1
3 1
4 0
4 0
4 0
4 1
4 1
;
data want;
set have;
by id flag notsorted;
if first.id then cnt = 0;
if first.flag then cnt + 1;
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.