Skip to content

Commit

Permalink
Merge branch 'AndresUpdate'
Browse files Browse the repository at this point in the history
  • Loading branch information
randrescastaneda committed Mar 5, 2020
2 parents b36e608 + f00362b commit ae0e839
Show file tree
Hide file tree
Showing 8 changed files with 318 additions and 176 deletions.
41 changes: 24 additions & 17 deletions pcn.ado
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ pause ///
vermast(string) ///
veralt(string) ///
* ///
qui ///
]
version 14

Expand Down Expand Up @@ -80,6 +81,12 @@ qui {

if ("`maindir'" == "") local maindir "`drive':/`root'"

if ("`qui'" == "") {
local nq "noi"
}
else {
local nq "qui"
}

//------------ Download functions

Expand All @@ -89,7 +96,7 @@ qui {
noi disp as text "Options available to download"

local i = 0
noi disp _n "select survey to load" _request(_survey)
noi disp _n "select survey to load"
foreach db of local dldb {
local ++i
noi disp `" `i' {c |} {stata `db'}"'
Expand Down Expand Up @@ -117,7 +124,7 @@ qui {

if regexm("`subcmd'", "download[ ]+gpwg") {

noi pcn_download_gpwg, countries(`countries') years(`years') /*
`nq' pcn_download_gpwg, countries(`countries') years(`years') /*
*/ maindir("`maindir'") `pause' `options'
return add
exit
Expand All @@ -129,11 +136,11 @@ qui {

if regexm("`subcmd'", "primus[ ]+approved") {
if regexm("`options'", "down\(.*\)") {
noi pcn_primus_download, countries(`countries') years(`years') /*
`nq' pcn_primus_download, countries(`countries') years(`years') /*
*/ status(approved) `pause' `options'
}
else if regexm("`options'", "load\(.*\)"){
noi pcn_primus_load, s(approved) `pause' `options'
`nq' pcn_primus_load, s(approved) `pause' `options'
}
else err

Expand All @@ -143,11 +150,11 @@ qui {

if regexm("`subcmd'", "primus[ ]+pending") {
if regexm("`options'", "down\(.*\)") {
noi pcn_primus_download, countries(`countries') years(`years') /*
`nq' pcn_primus_download, countries(`countries') years(`years') /*
*/ status(pending) `pause' `options'
}
else if regexm("`options'", "load\(.*\)"){
noi pcn_primus_load, s(pending) `pause' `options'
`nq' pcn_primus_load, s(pending) `pause' `options'
}
else err

Expand All @@ -160,7 +167,7 @@ qui {
//========================================================
if regexm("`subcmd'", "download[ ]+wrk") {
local maindir "p:\01.PovcalNet\03.QA\02.PRIMUS\pending"
noi pcn_download_wrk, countries(`countries') years(`years') /*
`nq' pcn_download_wrk, countries(`countries') years(`years') /*
*/ `pause' `options' maindir("`maindir'")
return add
exit
Expand All @@ -172,7 +179,7 @@ qui {

if ("`subcmd'" == "load" | "`subcmd'" == "load[ ]+gpwg") {

noi pcn_load, country(`countries') year(`years') type(`type') /*
`nq' pcn_load, country(`countries') year(`years') type(`type') /*
*/ maindir("`maindir'") vermast(`vermast') veralt(`veralt') /*
*/ `pause' `options'
return add
Expand All @@ -186,7 +193,7 @@ qui {

local maindir "p:\01.PovcalNet\03.QA\02.PRIMUS\pending"

noi pcn_load_wrk, country(`countries') year(`years') /*
`nq' pcn_load_wrk, country(`countries') year(`years') /*
*/ maindir("`maindir'") vermast(`vermast') /*
*/ `pause' `clear' `options'
return add
Expand All @@ -200,7 +207,7 @@ qui {

local maindir "p:\01.PovcalNet\03.QA\02.PRIMUS\pending"

noi pcn_load_estimates, maindir("`maindir'") /*
`nq' pcn_load_estimates, maindir("`maindir'") /*
*/ `pause' `clear' `options'
return add
exit
Expand All @@ -213,7 +220,7 @@ qui {

if ("`subcmd'" == "create") {

noi pcn_create, countries(`countries') years(`years') type(`type') /*
`nq' pcn_create, countries(`countries') years(`years') type(`type') /*
*/ maindir("`maindir'") vermast(`vermast') veralt(`veralt') /*
*/ `pause' `options'
return add
Expand All @@ -227,7 +234,7 @@ qui {

if inlist(lower("`subcmd'"), "group", "groupdata", "gd", "groupd") {

noi pcn_groupdata, countries(`countries') years(`years') type(`type') /*
`nq' pcn_groupdata, country(`countries') years(`years') type(`type') /*
*/ vermast(`vermast') veralt(`veralt') /*
*/ `pause' `options'
return add
Expand All @@ -243,7 +250,7 @@ qui {
error
}

noi pcn_update_cpi, `pause' `options'
`nq' pcn_update_cpi, `pause' `options'
return add
exit
}
Expand All @@ -253,7 +260,7 @@ qui {
//========================================================

if regexm("`subcmd'", "load[ ]+cpi") {
noi pcn_load_cpi, `pause' `options'
`nq' pcn_load_cpi, `pause' `options'
return add
exit
}
Expand All @@ -269,11 +276,11 @@ qui {
error
}

noi pcn_master_update, `pause' `options'
`nq' pcn_master_update, `pause' `options'
return add
}
if regexm("`options'", "load\(.*\)") {
noi pcn_master_load, `pause' `options'
`nq' pcn_master_load, `pause' `options' `qui'
return add
}
exit
Expand All @@ -286,7 +293,7 @@ qui {

if ("`subcmd'" == "test") {

noi pcn_test
`nq' pcn_test
exit
}

Expand Down
182 changes: 141 additions & 41 deletions pcn_create.ado
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ local user=c(username)
qui {

pcn_primus_query, countries(`countries') years(`years') ///
`pause' vermast("`vermast'") veralt("`veralt'")
`pause' vermast("`vermast'") veralt("`veralt'") gpwg

local varlist = "`r(varlist)'"
local n = _N
Expand Down Expand Up @@ -140,60 +140,160 @@ qui {
* monthly data
replace welfare=welfare/12

* keep weight and welfare
keep weight welfare
sort welfare
keep weight welfare urban

* drop missing values
drop if welfare < 0 | welfare == .
drop if weight <= 0 | weight == .
* special treatment for IDN and IND
if inlist("`country'", "IND", "IDN") {
preserve
keep if urban==0
tempfile rfile
char _dta[cov] "R"
save `rfile'

order weight welfare
restore, preserve

//========================================================
// Check if data is the same as the previous one and save.
//========================================================
keep if urban==1
char _dta[cov] "U"
tempfile ufile
save `ufile'

cap datasignature confirm using "`surdir'/`survid'/Data/`survid'_PCN"
local dsrc = _rc
if (`dsrc' == 9) {
cap mkdir "`surdir'/`survid'/Data/_vintage"
preserve // I cannot use copy because I need the pcn_datetime char
restore

use "`surdir'/`survid'/Data/`survid'_PCN.dta", clear
save "`surdir'/`survid'/Data/_vintage/`survid'_PCN_`:char _dta[creationdate]'", replace

// Loading PPPs, population data and CPI data
preserve

// PPPs
pcn master, load(ppp) qui
keep if countrycode == "`country'" & lower(coveragetype) != "national"
gen urban = lower(coveragetype) == "urban"
keep urban ppp2011
tempfile ppp
save `ppp'

// Population
pcn master, load(population) qui
keep if countrycode=="`country'" & lower(coveragetype) != "national" & year==`year'
gen urban = lower(coveragetype) == "urban"
keep urban population
tempfile pop
save `pop'

// CPI
pcn master, load(cpi) qui
keep if countrycode=="`country'" & lower(coveragetype) != "national" & year==`year'
gen urban = lower(coveragetype) == "urban"
keep urban cpi
tempfile cpi
save `cpi'

restore

// Merge with raw data
merge m:1 urban using `ppp', nogen
merge m:1 urban using `pop', nogen
merge m:1 urban using `cpi', nogen

// Create welfare in daily PPP terms
replace welfare = welfare*12/365/cpi/ppp

// Rescaling weights
forvalues x = 0/1 {
sum weight if urban==`x'
replace weight = weight*pop/`r(sum)'*10^6 if urban==`x'
}

label var welfare "Welfare in 2011 USD PPP per day"

char _dta[cov] "N"
tempfile wfile
save `wfile'


local cfiles "`rfile' `ufile' `wfile'"
} // end of special cases
else {
tempfile wfile
char _dta[cov] ""
save `wfile'
local cfiles "`wfile'"
}
if (`dsrc' != 0) {
cap datasignature set, reset /*
*/ saving("`surdir'/`survid'/Data/`survid'_PCN", replace)

char _dta[filename] = "`filename'"
char _dta[survin] = "`survin'"
char _dta[survid] = "`survid'"
char _dta[surdir] = "`surdir'"
char _dta[creationdate] = "`date_time'"
foreach file of local cfiles {

//------------Uncollapsed data
save "`surdir'/`survid'/Data/`survid'_PCN.dta", `replace'
export delimited using "`surdir'/`survid'/Data/`survid'_PCN.txt", ///
novarnames nolabel delimiter(tab) `replace'
use `file', clear
local cc: char _dta[cov] // country coverage
if ("`cc'" == "") {
local cc "N"
local cov ""
}
else {
local cov "-`cc'"
}

* keep weight and welfare
keep weight welfare
sort welfare

//------------ collapse data
collapse (sum) weight, by(welfare)
* drop missing values
drop if welfare < 0 | welfare == .
drop if weight <= 0 | weight == .

save "`surdir'/`survid'/Data/`survid'_PCNc.dta", `replace'
order weight welfare

export delimited using "`surdir'/`survid'/Data/`survid'_PCNc.txt", ///
novarnames nolabel delimiter(tab) `replace'
noi _dots `i' 0
}
else {
noi _dots `i' -1
continue
}
//========================================================
// Check if data is the same as the previous one and save.
//========================================================

cap datasignature confirm using "`surdir'/`survid'/Data/`survid'_PCN`cov'"
local dsrc = _rc
if (`dsrc' == 9) {
cap mkdir "`surdir'/`survid'/Data/_vintage"
preserve // I cannot use copy because I need the pcn_datetime char

use "`surdir'/`survid'/Data/`survid'_PCN`cov'.dta", clear
save "`surdir'/`survid'/Data/_vintage/`survid'_PCN`cov'_`:char _dta[creationdate]'", replace

restore
}
if (`dsrc' != 0 | "`replace'" != "") {
cap datasignature set, reset /*
*/ saving("`surdir'/`survid'/Data/`survid'_PCN`cov'", replace)

char _dta[filename] "`filename'"
char _dta[survin] "`survin'"
char _dta[survid] "`survid'"
char _dta[surdir] "`surdir'"
char _dta[creationdate] "`date_time'"
char _dta[survey_coverage] "`cc'"

// Special case for IDN 2018 (should be deleted later)
if ("`country'" == "IDN") {
char _dta[welfaretype] "CONS"
char _dta[weighttype] "aw"
}


//------------Uncollapsed data
save "`surdir'/`survid'/Data/`survid'_PCN`cov'.dta", `replace'
export delimited using "`surdir'/`survid'/Data/`survid'_PCN`cov'.txt", ///
novarnames nolabel delimiter(tab) `replace'


//------------ collapse data
collapse (sum) weight, by(welfare)

save "`surdir'/`survid'/Data/`survid'_PCNc`cov'.dta", `replace'

export delimited using "`surdir'/`survid'/Data/`survid'_PCNc`cov'.txt", ///
novarnames nolabel delimiter(tab) `replace'
noi _dots `i' 0
}
else {
noi _dots `i' -1
continue
}
} // end of files loop

* mata: P = pcn_info(P)

Expand Down
4 changes: 3 additions & 1 deletion pcn_download_gpwg.ado
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ local user=c(username)
==================================================*/
qui {
pcn_primus_query, countries(`countries') years(`years') ///
`pause'
`pause' gpwg

pause after primus query

local varlist = "`r(varlist)'"
local n = _N
Expand Down
Loading

0 comments on commit ae0e839

Please sign in to comment.