Last active
March 27, 2020 18:29
-
-
Save randrescastaneda/a452495c59bee14db29481336d4d85d6 to your computer and use it in GitHub Desktop.
Merge CPI data in datalibweb to povclanet data... work in progress
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*##s | |
pcn load price, clear | |
keep countrycode year ref_year survname coverage datatype | |
tempfile pf | |
save `pf' | |
pcn load cpi, clear | |
replace ref_year = year if ref_year == . | |
replace year = year + 1 if survname == "EU-SILC" | |
replace levelnote = lower(levelnote) | |
replace levelnote = "urban" if countrycode == "ARG" | |
replace levelnote = "urban" if countrycode == "URY" & year <= 2005 | |
drop coverage | |
gen coverage = cond(levelnote == "rural", "R", /* | |
*/ cond(levelnote == "urban", "U", "N")) | |
merge 1:1 countrycode year ref_year survname coverage using `pf' | |
tempfile mf m3 | |
save `mf' | |
keep if _merge == 3 | |
drop _merge | |
save `m3' | |
* update reference year based on price framework data | |
use `mf' | |
keep if _merge == 1 | |
drop _merge | |
merge 1:1 countrycode year survname coverage using `pf', replace update keep(1 3 4 5) | |
tempfile mf2 | |
save `mf2' | |
keep if inlist(_merge, 4, 5) | |
drop _merge | |
append using `m3' | |
save `m3', replace | |
* update survey name | |
use `mf2', clear | |
keep if _merge == 1 | |
drop _merge | |
levelsof countrycode, local(countries) clean sep("|") | |
preserve | |
use `pf', clear | |
keep if regexm(countrycode, "`countries'") | |
tempfile pf2 | |
save `pf2' | |
restore | |
merge m:1 countrycode year ref_year coverage using `pf2', replace update keep(1 3 4 5) | |
tempfile mf3 | |
save `mf3' | |
keep if inlist(_merge, 4, 5) | |
drop _merge | |
append using `m3' | |
save `m3', replace | |
* Update coverage | |
use `mf3', clear | |
keep if _merge == 1 | |
drop _merge | |
levelsof countrycode, local(countries) clean sep("|") | |
levelsof year, local(years) clean sep("|") | |
preserve | |
use `pf', clear | |
keep if regexm(countrycode, "`countries'") | |
keep if regexm(strofreal(year), "`years'") | |
save `pf2', replace | |
restore | |
merge m:1 countrycode year ref_year survname using `pf2', replace update keep(1 3 4 5) | |
drop _merge | |
append using `m3' | |
* Fix issue with PHL | |
tempvar exp | |
expand 2 if countrycode == "PHL" & inlist(year, 2000, 2015), gen(`exp') | |
replace datatype = "i" if `exp' == 1 & inlist(year, 2000, 2015) | |
replace datatype = "c" if `exp' == 0 & countrycode == "PHL" & inlist(year, 2000, 2015) | |
replace datatype = "i" if countrycode == "PHL" & inrange(year, 2003, 2012) | |
* income and consumption in MEX | |
tempvar exp | |
expand 2 if countrycode == "MEX" & year >= 1992, gen(`exp') | |
replace datatype = "c" if `exp' == 1 | |
* Income and consumption in NIC | |
tempvar exp | |
expand 2 if countrycode == "NIC" & inrange(year, 1993, 2005) , gen(`exp') | |
replace datatype = "c" if `exp' == 1 | |
* I/C in HTI | |
tempvar exp | |
expand 2 if countrycode == "HTI" & year == 2012 , gen(`exp') | |
replace datatype = "i" if `exp' == 1 | |
* assume consumtpion for those with no information | |
replace datatype = "c" if datatype == "" | |
gen datayear = strofreal(ref_year,"%6.2f") | |
replace datatype = cond(lower(datatype) == "i", "2", "1") | |
destring datatype, replace | |
gen coveragetype = cond(coverage == "U", 2, /* | |
*/ cond(coverage == "R", 1 , 3)) | |
replace coveragetype = 4 if inlist(countrycode, "IND", "IDN", "CHN") /* | |
*/ & coveragetype == 3 | |
* hardcoded cleaning | |
drop if countrycode == "GEO" & year == 1997 & survname != "SGH" | |
drop if countrycode == "RUS" & year == 2001 & survname != "RLMS" | |
drop if countrycode == "BRA" & year >= 2012 & survname == "PNAD" | |
keep countrycode year datayear coveragetype datatype cpi2011 icp2011 ccf cur_adj survname | |
* fix discrepancies | |
duplicates drop | |
duplicates report countrycode year datayear coveragetype datatype | |
replace year = year - 1 if survname == "EU-SILC" // revert change | |
replace year = year - 1 if countrycode == "MKD" & survname == "SILC-C" | |
replace year = year - 1 if countrycode == "MNE" & survname == "SILC-C" | |
replace year = year - 1 if countrycode == "MYS" & year >= 2009 | |
replace year = year - 1 if countrycode == "TZA" & year == 2018 | |
replace year = 2014 if countrycode == "COM" & year == 2013 | |
tempfile cpi | |
save `cpi' | |
save "cpi_to_povcalnet.dta", replace | |
povcalnet, clear | |
gen dyear = strofreal(datayear,"%6.2f") | |
rename (dyear datayear) (datayear dyear) | |
* Manual adjustments | |
replace coveragetype = 2 if countrycode == "BOL" & year == 1992 | |
replace coveragetype = 2 if countrycode == "URY" & year <= 2005 | |
replace coveragetype = 3 if countrycode == "ECU" & year == 1998 | |
replace year = year + 1 if countrycode == "COM" & year == 2013 | |
merge 1:1 countrycode year coveragetype datatype /* | |
*/ using "cpi_to_povcalnet.dta", keep(1 3) nogen | |
exit | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment