Hello,
I'm trying to restrict a birth dataset for a class (see below). I'm new to coding so I'm sure my code isn't the most eloquent, however, regardless of what code I try to run SAS Studio is taking a long time to process. Any suggestions? Thanks!
DATA G7Data.Restricted;
SET RMG7.CO_BIRTH_FALL2018_PRMD6626 (KEEP = ID MatTrans Income MEduc BWGr Apgar5 Apgar10
Plurality FacilityTpye AttendantType Gindex BirthState
EstGest EstGestOb EstGestClin);
IF Plurality = "1" THEN OUTPUT G7Data.Restricted;
IF AttendantType = "1" OR
AttendantType = "2" OR
AttendantType = "3" OR
AttendantType = "4" THEN OUTPUT G7Data.Restricted;
IF FacilityType = "1" THEN OUTPUT G7Data.Restricted;
IF BirthState = "99999000006" THEN OUTPUT G7Data.Restricted;
IF M_Age GE 18 AND LE 35 THEN OUTPUT G7Data.Restricted;
RUN;
If there is more then one true condition shall the code output be duplicated ?
If the answer is negative change the inner step code to:
IF Plurality = "1" OR
("1" le AttendantType le "4") OR
FacilityType = "1" OR
BirthState = "99999000006" OR
(M_Age GE 18 AND M_Age LE 35)
THEN OUTPUT G7Data.Restricted;
I see no reason that code will run for long time unless the dataset is very big.
I had to restart SAS Studio for the code to work, but I realized the code I wrote was duplicating. Thank you for that suggestion, I'm going to try it out!
If you want to apply multiple restrictions use AND between the different qualifiers.
DATA G7Data.Restricted;
SET RMG7.CO_BIRTH_FALL2018_PRMD6626 (KEEP = ID MatTrans Income MEduc BWGr Apgar5 Apgar10
Plurality FacilityTpye AttendantType Gindex BirthState
EstGest EstGestOb EstGestClin);
where Plurality = "1"
and AttendantType in( "1" "2""3" "4")
and FacilityType = "1"
and BirthState = "99999000006"
and 18 le M_Age LE 35
;
RUN;
The IN operator is basically a shorthand for Variable = "value" or variable = "other value" or variable= "yet another value"
with some added advantages for ranges of integer values.
SAS supports a < b < c type comparisons so you can more easily see things than having to use an AND with two comparisons.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Get started using SAS Studio to write, run and debug your SAS programs.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.