********************************************************************* August 17, 2010 THIS IS AN EXAMPLE OF A SAS PROGRAM THAT CREATES A SAS FILE FROM THE Public Use Supplemental Imputed Income ASCII FILE THIS IS STORED IN INCIMPS.SAS *********************************************************************; * USER NOTE: REPLACE CORRECT PATH AND PARAMETERS BEFORE EXECUTING THE SAS PROGRAM; %LET YEAR = 1999; *** provide survey year ***; *** path to store the supplemental imputed income SAS datasets ***; LIBNAME NHIS "C:\NHIS&YEAR\"; LIBNAME LIBRARY "C:\NHIS&YEAR\"; * DEFINE VARIABLE VALUES FOR REPORTS; * USE THE STATEMENT "PROC FORMAT LIBRARY=LIBRARY" TO PERMANENTLY STORE THE FORMAT DEFINITIONS; * USE THE STATEMENT "PROC FORMAT" IF YOU DO NOT WISH TO PERMANENTLY STORE THE FORMATS.; PROC FORMAT LIBRARY=LIBRARY; *PROC FORMAT; VALUE INC008X 0 = "0 Not top-coded" 1 = "1 Top-coded family income or poverty ratio" ; VALUE INC009X 0 = "0 Not top-coded" 1 = "1 Top-coded personal earning " ; RUN; %macro allimp; %do impnum=1 %to 5; *** path to the supplemental imputed income ASCII datasets ***; FILENAME ASCIIDAT "C:\NHIS&YEAR\INCIMPS&IMPNUM..DAT"; DATA NHIS.INCIMPS&IMPNUM; *** CREATE A SAS DATA SET ***; INFILE ASCIIDAT PAD LRECL=35; * DEFINE LENGTH OF ALL VARIABLES; LENGTH RECTYPE 4 SRVY_YR 4 HHX $6 FMX $2 FPX $2 IMPNUM 4 FAMINCI2 4 ERNYR_I2 4 POVRATI2 4 TCINCM_F 4 TCEARN_F 4 ; * INPUT ALL VARIABLES; INPUT RECTYPE 1 - 2 SRVY_YR 3 - 6 HHX $ 7 - 12 FMX $ 13 - 14 FPX $ 15 - 16 IMPNUM 17 FAMINCI2 18-23 TCINCM_F 24 POVRATI2 25-28 ERNYR_I2 29-34 TCEARN_F 35 ; * DEFINE VARIABLE LABELS; LABEL RECTYPE ="File type identifier" SRVY_YR ="Year of National Health Interview Survey" HHX ="HH identifier" FMX ="Family Serial Number" FPX ="Person Number" IMPNUM ="Imputation Number" ERNYR_I2 ="Imputed personal earnings top-coded to 95 percentile" FAMINCI2 ="Imputed family income top-coded to 95 percentile" POVRATI2 ="Poverty ratio calculated from the top-coded family income" TCINCM_F ="Family income/poverty ratio top-code flag" TCEARN_F ="Personal earnings top-coded flag" ; * ASSOCIATE VARIABLES WITH FORMAT VALUES; FORMAT TCINCM_F INC008X. TCEARN_F INC009X. ; RUN; PROC CONTENTS DATA=NHIS.INCIMPS&IMPNUM; TITLE1 "CONTENTS OF THE &YEAR NHIS SUPPLEMENTAL IMPUTED INCOME FILE, DATASET &IMPNUM"; RUN; PROC FREQ DATA=NHIS.INCIMPS&IMPNUM; TABLES RECTYPE SRVY_YR FMX FPX IMPNUM TCINCM_F TCEARN_F; TITLE1 "FREQUENCY REPORT FOR &YEAR NHIS SUPPLEMENTAL IMPUTED INCOME FILE, DATASET &IMPNUM"; TITLE2 '(UNWEIGHTED)'; * USER NOTE: TO SEE UNFORMATTED VALUES IN PROCEDURES, ADD THE STATEMENT: FORMAT _ALL_; RUN; %end; %mend allimp; %allimp;