Pulling only EM codes and trying to create a column to flag EM codes:
data EMpull;
set OUTPAT;
if cpt between '99201' and '99215' or between
'99241' and '99245'
or '99381' and '99397' or
'99354' and '99355'
or '99401' and '99412' then EMflag="EM";
run;
What is your question?
I figured it out. Was just trying to pull in all EM code data.
Now I'm trying to split them into two quarters - 1/1/2021 - 3/31/2021 = Q1 and 4/1/2021 - 6/30/2021 i= Q2. Where would I do that in this data set?
data EMpull;
set OUTPAT;
where ( '99201' <= cpt <= '99215')
or (cpt between '99241' and '99245')
or (cpt between '99381' and '99397')
or (cpt between '99354' and '99355')
or (cpt between '99401' and '99412');
run;
Thank you,
data EMpull;
set OUTPAT;
where ( '99201' <= cpt <= '99215')
or (cpt between '99241' and '99245')
or (cpt between '99381' and '99397')
or (cpt between '99354' and '99355')
or (cpt between '99401' and '99412');
Quarter = put(date, yyq6.);
QuarterNumber = QTR(date);
run;
I'm trying to create a a Q! and Q2 date range. How do i create that first?
Q1 = 1/1/2021 thru 3/31/2021 and Q2 = 4/1/2021-6/30/2021
Yes I have two date ranges to split into quarters - Q1 and Q2.
This is what I have:
data EMpull;
set OUTPAT;
where ( '99201' <= cpt <= '99215')
or (cpt between '99241' and '99245')
or (cpt between '99381' and '99397')
or (cpt between '99354' and '99355')
or (cpt between '99401' and '99412');
if ('01Jan2021' <= eventDate <= '31Mar2021') THEN Q1;
else if ('01Apr2021' <= eventDate <= '30Jun2021') THEN Q2;
RUN;
Yes I have two date ranges to split into quarters - Q1 and Q2.
This is what I have:
data EMpull;
set OUTPAT;
where ( '99201' <= cpt <= '99215')
or (cpt between '99241' and '99245')
or (cpt between '99381' and '99397')
or (cpt between '99354' and '99355')
or (cpt between '99401' and '99412');
if ('01Jan2021' <= eventDate <= '31Mar2021') THEN Q1;
else if ('01Apr2021' <= eventDate <= '30Jun2021') THEN Q2;
RUN;
I just want a column called "QTR" then in that column for each date range should say either Q1 or Q2
it gives me this error:
Quarter=2021-05 QuarterNumber=. _ERROR_=1 _N_=1
It's not showing the Q1 or Q2 or anything in the data for that column
data EMpull;
set OUTPAT;
where ( '99201' <= cpt <= '99215')
or (cpt between '99241' and '99245')
or (cpt between '99381' and '99397')
or (cpt between '99354' and '99355')
or (cpt between '99401' and '99412');
*brute force method - not recommended;
if ('01Jan2021' <= eventDate <= '31Mar2021') THEN QTR="Q1";
else if ('01Apr2021' <= eventDate <= '30Jun2021') THEN QTR="Q2";
*better way;
QTR=catt('Q', qtr(eventDate));
RUN;
Fully tested example:
data stocks;
set sashelp.stocks;
where stock = 'IBM';
QTR=catt("Q", qtr(date));
YEAR_QTR = put(date, yyq6.);
keep date QTR YEAR_QTR;
run;
@anonymous_user wrote:
it gives me this error:
Quarter=2021-05 QuarterNumber=. _ERROR_=1 _N_=1
It's not showing the Q1 or Q2 or anything in the data for that column
Ok , how do you create the actual date range?
Like for Q1 = 1/1/2021-3/31/2021 and Q2 is 4/1/2021-6/30/2021.
I tried doing between operators and it doesn't work.
Sorry for my ignorance, I need this laid out in lay terms.
This is what I've done with the example you provided (the output isnt making sense):
data EMpull;
set OUTPAT;
where ( '99201' <= cpt <= '99215')
or (cpt between '99241' and '99245')
or (cpt between '99381' and '99397')
or (cpt between '99354' and '99355')
or (cpt between '99401' and '99412');
QTR=catt('Q1', qtr('01Jan2021' <= eventDate <= '31Mar2021'));
/*catt('Q2', qtr('01Apr2021' <= eventDate <= '30Jun2021'));*/
YEAR_QTR = put(('01Jan2021' <= eventDate <= '31Mar2021'), yyq6.);
RUN;
@anonymous_user wrote:
...
QTR=catt('Q1', qtr('01Jan2021' <= eventDate <= '31Mar2021'));
...
YEAR_QTR = put(('01Jan2021' <= eventDate <= '31Mar2021'), yyq6.);
...
The QTR() function operates on DATE values, but you passed it a BOOLEAN value (1=true 0=false) instead.
The YYQ. format operates on DATE values, but you also passed it a BOOLEAN value.
Since 0 and 1 are the first and second day of 1960 your code is equivalent to:
QTR='Q11';
YEAR_QTR = '1960Q1';
Why not try:
QTR=qtr(eventDate);
YEAR_QTR = put(eventDate,yyq6.);
Then if you want to limit the data to values in first two quarters of 2021 you could add:
if year_qtr in ('2021Q1' '2021Q2');
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.