Contents: Purpose / Requirements / Usage / Limitations / Example / References
PURPOSE:
Creates custom region maps quickly using PROC GMAP and without having to know the intricacies of the procedure.
REQUIREMENTS:
Base SAS Software and SAS/GRAPH. You will first need to download the desired region shp file (For example, State, County or Zip shp file. You can download shape files here: https://www.census.gov/geo/maps-data/data/tiger-cart-boundary.html).
USAGE:
Download the file regmap.sas attached with this post and save it in your work directory (or any desired location). Replace the text within quotes in the following statement with the location of the %REGMAP macro definition file on your system. In your SAS program or in the SAS editor window, specify this statement to define the %REGMAP macro and make it available for use:
%inc "<location of your file containing the REGMAP macro>";
Following this statement, you may call the %REGMAP macro.
The required arguments for the %REGMAP macro are as follows:
your_data=
SAS data set to be analyzed.
shp_file=
Region map shape file to output the data upon (For example, State, County or Zip shp file).
common_id=
Name of the geo variable that exists in both your data and the shape file. This will be the unique identifier of a region/location.
response_var=
Name of the variable that is to be outputted on the region map.
title= (optional)
Title for the region map.
start_color= (optional)
Starting color in the color scale.
end_color= (optional)
Ending color in the color scale.
labels= (optional)
Labels for the regions.
LIMITATIONS:
Labels cannot be outputted on the map as of now but it’s a work in progress.
EXAMPLE:
/*First step is to import the shape file*/
Proc MAPIMPORT OUT=State Datafile='your-location\cb_2016_us_state_20m.shp';
run;
/*Make sure that the common_id variable is in the same format for both your dataset and shape file.
Note that when you import a shape file, SAS creates a dataset. You may manipulate this dataset just like in the following code.*/
data State2;
set State;
STATE=input(STATEFP,BEST12.);
run;
/*Now you set reference to where the REGMAP macro is located*/
%inc "your-location/regmap.sas";
/*Lastly, just call the macro funtion that creates the map*/
%regmap(your_data=Pop,shp_file=State2,common_id=STATE, response_var=CENSUS2010POP, title="US Population",start_color=CXFF0000 ,end_color=CX00FF00);
REFERENCES:
SAS Support Samples & Notes: https://support.sas.com/sassamples/graphgallery/PROC_GMAP.html
You would need SAS/GRAPH for this as well.
I'm assuming there is no question here, rather a sharing of code/ideas?
You would need SAS/GRAPH for this as well.
I'm assuming there is no question here, rather a sharing of code/ideas?
@akulkarni wrote:
I confused sascommunity.org with this website which appears to be Q&A only.
You can post topics/tutorials such as this, but they go under the library section.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.