BookmarkSubscribeRSS Feed
gmoore
Calcite | Level 5

Does anyone know of an existing (SAS or other) 3-digit zip code (zcta) data set? If not, what steps are needed to convert a 5-digit zip code data set to a 3-digit data set? (NOTE: I have the TigerLine 2013 US ZCTA510 data.) I believe it must be more than creating a new variable (3-digit zip code) from the existing 5-digit zip code.

Many thanks,

Gary

6 REPLIES 6
GraphGuy
Meteorite | Level 14

You would need to create the new 3-digit zip variable, and then use 'proc gremove' to remove all the internal boundaries within those 3-digit areas.

Here's the gremove doc:

SAS/GRAPH(R) 9.4: Reference, Second Edition

gmoore
Calcite | Level 5

Thanks, Robert. Will the NODECYLE option in 'proc gremove' handle non-contiguous boundaries?

GraphGuy
Meteorite | Level 14

I would try it with no extra parameters/options first, and see how it looks. I think the way it handles non-contiguous areas is to give each one a different 'segment' number.

nnat
Calcite | Level 5

Hello, were you able to figure this out?  

tyler864210
Calcite | Level 5

Gary, 

 

Were you able to convert the 5-digit zip to a 3-digit zip? If so, could you provide the SAS code to perform this conversion.  I am having trouble following the proc gremove steps provided. Thanks,

Tyler

GraphGuy
Meteorite | Level 14

Here's some code that imports a zcta boundary map, plots the zctas colored by zip3 ... and then gremoves the internal borders, and plots the zip3 polygons. This should be a good starting-point to get you going:

 

proc mapimport datafile="../democd17/zt37_d00.shp" out=zcta_map; 
 id zcta;  
run; 

proc gproject data=zcta_map (rename=(x=long y=lat)) out=zcta_map eastlong latlong degrees;
id zcta;
run;

data zcta_map; set zcta_map;
zip3=substr(zcta,1,3);
run;

proc gremove data=zcta_map out=zcta3_map;
by zip3;
id zcta;
run;

title ls=1.5 "NC Zip Code Map, Colored by zip3";
proc gmap data=zcta_map map=zcta_map all; 
id zcta; 
choro zip3 / coutline=gray cdefault=cxF5F5DC; 
run;

title ls=1.5 "NC Zip3 Map, Colored by zip3";
proc gmap data=zcta3_map map=zcta3_map all; 
id zip3; 
choro zip3 / coutline=gray cdefault=cxF5F5DC; 
run;

 

 

zip_3_boundaries.png

 

 

 

zip_3_boundaries1.png

 

 

SAS INNOVATE 2024

Innovate_SAS_Blue.png

Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

How to Concatenate Values

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.

Get the $99 certification deal.jpg

 

 

Back in the Classroom!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 2841 views
  • 0 likes
  • 4 in conversation