global industry "${CMF_pipeline}/5_industry_assignment" **infer industry split industry, parse("//") generate(industry) notrim *br if ind_detailed == "" & industry != "" // 3433 out of 8146 with no ind_detailed ************************** * flour and grist mills ************************** cap gen ind_detailed = "" *br if regexm(industry1, "wheat") & ind_detailed == "" replace ind_detailed = "flour and grist mills" if regexm(industry1, "wheat") & ind_detailed == "" *br if regexm(industry1, "buckwheat") & ind_detailed == "" // 0 obs *br if regexm(industry1, "rye") & ind_detailed == "" // 0 obs *br if regexm(industry1, "barley") & ind_detailed == "" replace ind_detailed = "flour and grist mills" if regexm(industry1, "barley") & ind_detailed == "" *br if regexm(industry1, "corn") & ind_detailed == "" replace ind_detailed = "flour and grist mills" if regexm(industry1, "corn") & ind_detailed == "" *br if regexm(industry2, "flour") & ind_detailed == "" replace ind_detailed = "flour and grist mills" if regexm(industry1, "flour") & ind_detailed == "" *br if regexm(industry2, "feed") & ind_detailed == "" replace ind_detailed = "flour and grist mills" if regexm(industry1, "feed") & ind_detailed == "" *br if regexm(industry1, "meal") & ind_detailed == "" replace ind_detailed = "flour and grist mills" if regexm(industry1, "meal") & regexm(industry1, "lumber") == 0 & ind_detailed == "" *br if regexm(industry1, "grist") & ind_detailed == "" replace ind_detailed = "flour and grist mills" if regexm(industry1, "grist") & ind_detailed == "" **meaningless industry1 & flour/grist industry2 *br if regexm(industry1, "steam|merc|water|mill|mfg") & regexm(industry2, "wheat|flour|barley|corn|meal|feed|grist") & ind_detailed == "" cap replace ind_detailed = "flour and grist mills" if regexm(industry1, "steam|merc|water|mill|mfg") & regexm(industry2, "wheat|flour|barley|corn|meal|feed|grist") & ind_detailed == "" ************************** * lumber industry ************************** *br if regexm(industry1, "planing") & ind_detailed == "" replace ind_detailed = "lumber, planed" if regexm(industry1, "planing") & ind_detailed == "" *br if regexm(industry1, "lumber") & ind_detailed == "" replace ind_detailed = "lumber, sawed" if regexm(industry1, "lumber") & ind_detailed == "" *br if regexm(industry1, "saw") & ind_detailed == "" replace ind_detailed = "lumber, sawed" if regexm(industry1, "saw") & regexm(industry1, "grain") == 0 & ind_detailed == "" *br if regexm(industry1, "shingle") & ind_detailed == "" replace ind_detailed = "lumber, sawed" if (regexm(industry1, "shingle") | regexm(industry1, "shingling")) & ind_detailed == "" *br if regexm(industry1, "timber") & ind_detailed == "" *replace ind_detailed = "lumber, sawed" if regexm(industry1, "timber") & ind_detailed == "" *br if regexm(industry1, "board") & ind_detailed == "" replace ind_detailed = "lumber, sawed" if regexm(industry1, "board") & ind_detailed == "" **many furniture *br if regexm(industry1, "wood") & !regexm(industry1, "carriage|wagon") & ind_detailed == "" *replace ind_detailed = "lumber, sawed" if regexm(industry1, "wood") & ind_detailed == "" **meaningless industry1 & saw industry2 *br if regexm(industry1, "steam|merc|water|mill|mfg|card") & regexm(industry2, "saw|planing|planning|lumber|shingle|board") & ind_detailed == "" cap replace ind_detailed = "lumber, sawed" if regexm(industry1, "steam|merc|water|mill|mfg") & regexm(industry2, "saw|planing|planning|lumber|shingle|board") & ind_detailed == "" cap replace ind_detailed = "lumber, sawed" if regexm(industry1, "steam|merc|water|mill|mfg") & regexm(production_kinds_raw1, "plank|scantl|shingle|board|plan|saw") cap drop industry1 cap drop industry2 cap drop industry3 cap drop industry4 cap drop industry5 cap drop industry6 cap drop industry7 tempfile infered save "`infered'" ** Infer from materials & products & after manual check import excel using "${industry}/intermediate_files/industry_assignment_new_class_inference.xlsx", firstrow allstring clear destring, replace keep if ind_detailed_new != "" replace ind_detailed_new = "flour and grist mills" if ind_detailed_new == "flour and grist mills " replace ind_detailed_new = "flour and grist mills" if ind_detailed_new == "flour & grist mills" replace ind_detailed_new = "flour and grist mills" if ind_detailed_new == "flour and gist mills" replace ind_detailed_new = "flour and grist mills" if ind_detailed_new == "flour & gist mills" assert ind_detailed_new == "flour and grist mills" | ind_detailed_new == "lumber, sawed" keep file_name firm_number ind_detailed_new merge 1:1 file_name firm_number using "`infered'", keep(2 3) nogen replace ind_detailed = ind_detailed_new if ind_detailed == "" drop ind_detailed_new ind_granular ind_leontief ind_broadest save "`infered'", replace **add broader classification use "${industry}/intermediate_files/industry_to_merge.dta", clear drop industry gduplicates drop merge 1:m ind_detailed using "`infered'", keep(2 3) nogen