Folks,
I'm having an issue with something at the moment which I'd be grateful for some assistance on.
I've a dataset at the moment which has a number of 0 for variable occurrence.
What I would like to do is change where there is a 0 to 1 and subsequently change the 1 to 2 and so on. Below gives a better idea.
Data in current format;
| ID | Occurrence | Value |
| 63 | 0 | 45 |
| 63 | 1 | 65 |
| 63 | 2 | 98 |
| 22 | 1 | 100 |
| 23 | 1 | 125 |
| 24 | 1 | 130 |
| 25 | 1 | 130 |
| 45 | 1 | 96 |
| 45 | 2 | 88 |
| 45 | 3 | 44 |
What I would like to occur;
| ID | Occurrence | Value |
| 63 | 1 | 45 |
| 63 | 2 | 65 |
| 63 | 3 | 98 |
| 22 | 1 | 100 |
| 23 | 1 | 125 |
| 24 | 1 | 130 |
| 25 | 1 | 130 |
| 45 | 1 | 96 |
| 45 | 2 | 88 |
| 45 | 3 | 44 |
If there is an instance of occurrence=0, will it always be for the first observation for an ID?
Here's an approach that makes a reasonable guess about how to handle that question:
data want;
set have;
by ID;
if first.ID then increment=0;
retain increment;
if occurrence=0 then increment=1;
occurrence = occurrence + increment;
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!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.