Hello friends
I want to ask please what is the best way to retrieve one row before end.
For example:
I want to retrieve the row with mon=1901 (because it is one row before the end)
Data tbl1;
informat start date9. end date9.;
format start date9. end date9.;
input mon start end;
cards;
1812 '21DEC2018'd '21Jan2019'd
1901 '22Jan2019'd '21Feb2019'd
1902 '22Feb2019'd '21Mar2019'd
;
run;
I found the solution
Data tbl1;
informat start date9. end date9.;
format start date9. end date9.;
input mon start end;
cards;
1812 '21DEC2018'd '21Jan2019'd
1901 '22Jan2019'd '21Feb2019'd
1902 '22Feb2019'd '21Mar2019'd
;
run;
data tbl2;
set tbl1 nobs=nobs;
if _n_ =nobs-1 then keep=1;
if keep ne 1 then delete;
run;
I found the solution
Data tbl1;
informat start date9. end date9.;
format start date9. end date9.;
input mon start end;
cards;
1812 '21DEC2018'd '21Jan2019'd
1901 '22Jan2019'd '21Feb2019'd
1902 '22Feb2019'd '21Mar2019'd
;
run;
data tbl2;
set tbl1 nobs=nobs;
if _n_ =nobs-1 then keep=1;
if keep ne 1 then delete;
run;
Like this, you read only one record of the set:
data junk;
point = max(1, nobs - 1);
set sashelp.class point=point nobs=nobs;
output; stop;
run;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.