clear set more off #delimit; /************************************************************************************************************* This do-file reads in the LDB data. 1. Read in data *************************************************************************************************************/ do paths; local ftppath pub/time.series/bd; tempfile data; /************************************************************************************************************* 1. Flat file of size of change *************************************************************************************************************/ file open batfile using batfile.bat, write replace; file write batfile "user ftp" _n(2) "get `ftppath'\bd.data.1.AllItems" _n "quit" _n; file close batfile; !ftp -n -s:batfile.bat ftp.bls.gov; qui insheet using "bd.data.1.AllItems"; qui gen database = substr(series,1,2); qui gen sa = substr(series,3,1); qui gen msa = substr(series,4,5); qui gen state_code = substr(series,9,2); qui gen county = substr(series,11,3); qui gen industry_code = substr(series,14,6); qui gen unitanalysis_code = substr(series,20,1); qui gen dataelement_code = substr(series,21,1); qui gen sizeclass_code = substr(series,22,2); qui gen dataclass_code = substr(series,24,2); qui gen type = substr(series,26,1); qui gen periodicity = substr(series,27,1); qui gen ownership_code = substr(series,28,1); qui destring period, ignore("Q") gen(quarter); qui destring *code, replace; qui save `data'; /************************************************************************************************************* 2. Merge with mapping files *************************************************************************************************************/ foreach var in state industry unitanalysis dataelement sizeclass dataclass ownership {; file open batfile using batfile.bat, write replace; file write batfile "user ftp" _n(2) "get `ftppath'\bd.`var'" _n "quit" _n; file close batfile; !ftp -n -s:batfile.bat ftp.bls.gov; insheet using bd.`var', clear; qui erase bd.`var'; qui erase batfile.bat; qui merge 1:m `var'_code using `data', keep(matched using) nogenerate; qui save `data', replace; }; /************************************************************************************************************* 3. Save *************************************************************************************************************/ qui gen time = yq(year,quarter); qui format time %tq; order time sa type state_name dataclass_name sizeclass_name industry_name dataelement_name value; qui sort sa dataelement_code state_code industry_code time type dataclass_code; qui save "$SavePath/BED", replace; qui erase "bd.data.1.AllItems";