BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Paul_NYS
Obsidian | Level 7

I want to add a simple sequence number to a data set with no 'by' variable. Does anyone know how to identify the first observation in a data set so I can set this to zero and everything following it will just be an increment?

Paul

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

if _n_=1 then do ..

or initialize with retain statement

retain obs 0

You can also try:

Sequence=_n_;

View solution in original post

4 REPLIES 4
Reeza
Super User

if _n_=1 then do ..

or initialize with retain statement

retain obs 0

You can also try:

Sequence=_n_;

Paul_NYS
Obsidian | Level 7

That works fine: if _n_=1 then do ... Thanks Reeza. One somewhat related follow up, when I increment using lag, it is not working in this instance. Do yo or anyone usually use lag for something like this?

Paul

data uniquemediator1;

set uniquemediator;

if _n_=1 then do;

MedNum=1;

end;

if _n_ ne 1 then do;

MedNum=lag(MedNum)+1;

end;

run;

Reeza
Super User

Lag doesn't work in conditional if/then statements. There are papers written on this topic so you can search for those if you're interested.

I would use the following myself:

MedNum=_n_;

Paul_NYS
Obsidian | Level 7

Thanks Reeza. I think I remember that now actually. Sorry and thanks again.

And the _n_ works nicely when you don't need a 'by' variable grouping.

Paul

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 6674 views
  • 3 likes
  • 2 in conversation