My data looks like what I have in the attached .csv file and I need to have both variables sorted in ascending order. I tried using "proc sort" and "proc sql order by" to get the CDates sorted, but I have not been successful. I am thinking somekind of do-loop should do the trick, but at this point I am out of ideas.
Can anyone offer any insight?
It works for me with your data.
DATA WORK.Example;
source_rec_num+1;
LENGTH
CouponDates 8
CDates 8 ;
FORMAT
CouponDates DATE9.
CDates DATE10. ;
INFORMAT
CouponDates YYMMDD10.
CDates YYMMDD10. ;
INFILE 'c:\temp\example.csv'
DLM=','
truncover
DSD
firstobs=2;
INPUT
CouponDates : ?? YYMMDD8.
CDates : ?? YYMMDD8. ;
RUN;
proc sort data=work.example;
by CouponDates CDates;
run;
data CDates_Not_Ascending;
set work.example;
if lag(CDates) > CDates then output;
run;
Also, given your date format (yymmdd.), sorting works even if you read the dates as character. - PG
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.