Hi everyone,
If i have a data which is the following
data t;INPUT x;
cards;
1
2
1
2
3
1
2
;
This data set is merged from each person.
So, its id should be 1 1 2 2 2 3 3.
How could I get the the id I want? I have tried use the if first statement, but I failed.
Please tell me the easiest way to do it.
This would be one way:
data want;
set have;
priorx = lag(x);
if _n_=1 or x <= priorx then id + 1;
drop priorx;
run;
This assumes that when X stays the same from one observation to the next, that the ID should be different.
Good luck.
This would be one way:
data want;
set have;
priorx = lag(x);
if _n_=1 or x <= priorx then id + 1;
drop priorx;
run;
This assumes that when X stays the same from one observation to the next, that the ID should be different.
Good luck.
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.
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.