I am working in SAS 9.4. I have a data set and one of the variables is called 'state'. I need to remove all rows in which the 'state' variable is not equal to 'Alaska'. I also need to combine three other variables (month, day, and year) to create a new variable called EruptionDate and then drop those other 3 variables. The final thing that I can't figure out is how to only display the eruptions occuring after the year 2005. I am quite new to SAS and programming in general and this is what I have so far, but it's not working:
DATA Alsaka;
SET Work.earthquake;
IF State = Alaska
THEN EruptionDate = Month, Day, Year
ELSE REMOVE row;
DROP Month;
DROP Day;
DROP Year;
RUN;
PROC PRINT Data= Alaska;
WHERE year GT 2005;
RUN;
Thanks for any help.
There are errors in your code. Can you post a few observations of your data?
Depends upon what values you have for Month, Day and Year. You may be able to use something like:
DATA Alaska (drop=Month Day Year);
SET Work.earthquake;
format EruptionDate date9.;
IF State = 'Alaska' THEN do;
EruptionDate = mdy(Month, Day, Year);
output;
end;
RUN;
PROC PRINT Data= Alaska;
WHERE year(EruptionDate) GT 2005;
RUN;
Art, CEO, AnalystFinder.com
I made a few adjustments to tailor it to get my desired result but your post helped a lot. Thank you!
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!
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.