********************************************************************* * May 20, 2019 * * THIS IS AN EXAMPLE OF A STATA DO PROGRAM THAT CREATES A STATA * FILE FROM THE PUBLIC USE IMPUTED INCOME ASCII FILES * * NOTES: * * EXECUTING THIS PROGRAM WILL REPLACE incmimp1.dta - incmimp5.dta * AND incmimp1.log - incmimp5.log IF THOSE FILES ALREADY EXIST IN THE * DEFAULT DIRECTORY * * THIS PROGRAM ASSUMES THAT THE ASCII DATA FILE IS IN THE STATA WORKING * DIRECTORY. AN EXAMPLE OF HOW TO CHANGE THE WORKING DIRECTORY * WITHIN STATA IS THE FOLLOWING COMMAND: cd C:\nhis2018 * * THIS PROGRAM OPENS A LOG FILE. IF THE PROGRAM ENDS PREMATURELY, THE * LOG FILE WILL REMAIN OPEN. BEFORE RUNNING THIS PROGRAM AGAIN, THE * USER SHOULD ENTER THE FOLLOWING STATA COMMAND: log close * * THIS IS STORED IN incmimp.do ********************************************************************* forvalues x=1/5 { clear log using incmimp`x'.log, replace set more off #delimit ; * INPUT ALL VARIABLES; infix rectype 1 - 2 srvy_yr 3 - 6 str hhx 7 - 12 str fmx 13 - 14 str fpx 15 - 16 impnum 17 famincf2 18 tcincm_f 19 faminci2 20 - 25 povrati3 26 - 34 employ_f 35 employ_i 36 ernyr_f 37 tcearn_f 38 ernyr_i2 39 - 44 using incmimp`x'.dat; * DEFINE VARIABLES; label var rectype "File identifier type"; label var srvy_yr "Year of National Health Interview Survey"; label var hhx "HH identifier"; label var fmx "Family identifier"; label var fpx "Person number identifier"; label var impnum "Imputation number"; label var famincf2 "Family income imputation flag"; label var tcincm_f "Family income/poverty ratio top-coded flag"; label var faminci2 "Top-coded family income"; label var povrati3 "Ratio of family income to poverty threshold"; label var employ_f "Employment status imputation flag"; label var employ_i "Person's employment status"; label var ernyr_f "Person's earnings imputation flag"; label var tcearn_f "Person's earnings top-coded flag"; label var ernyr_i2 "Person's total earnings last year (top-coded)"; * DEFINE VARIABLE VALUES FOR REPORTS; label def inc000x 25 "25 Income Imputation" ; label def inc001x 0 "0 Reported" 1 "1 Imputed; no information" 2 "2 Imputed; reported in categories" ; label def inc002x 0 "0 Not top-coded" 1 "1 Top-coded" ; label def inc003x 0 "0 Not imputed" 1 "1 Imputed" ; label def inc004x 1 "1 Employed" 2 "Not employed" ; label def inc005x 0 "0 Reported" 1 "1 Imputed" ; * ASSOCIATE VARIABLES WITH LABEL DEFINITIONS; label values rectype inc000x; label values famincf2 inc001x; label values tcincm_f inc002x; label values employ_f inc003x; label values employ_i inc004x; label values ernyr_f inc005x; label values tcearn_f inc002x; * IMPLIED DECIMAL IS FORMALLY PLACED IN THE APPROPRIATE LOCATION * FOR THE VARIABLE POVRATI3; gen pov=.; replace pov=povrati3*.001; replace povrati3=pov; drop pov; * DISPLAY OVERALL DESCRIPTION OF FILE; describe; * FREQUENCY REPORT FOR NHIS IMPUTED INCOME FILE, DATASET `x' (UNWEIGHTED); tab rectype; tab srvy_yr; tab impnum; tab famincf2; tab tcincm_f; tab employ_f; tab employ_i; tab ernyr_f; tab tcearn_f; * MEANS FOR NHIS IMPUTED INCOME FILE, DATASET `x' (UNWEIGHTED); mean faminci2; estat sd; mean povrati3; estat sd; mean ernyr_i2; estat sd; save incmimp`x', replace; #delimit cr set more on * DATA FILE IS STORED IN incmimp`x'.dta * LOG FILE ARE STORED IN incmimp`x'.log log close }