Hillary G. Corwin, Ph.D.

Political Economist and Quantitative Researcher


Curriculum vitae


Preparing the Data for the Disseration


This section includes several steps:

  1. Cleaning and preparing China's foreign aid data to append with the OECD Creditor Reporting System (CRS) data
  2. Preparing the OECD CRS data for appending
  3. Appending the OECD CRS with China's Aid Data
  4. Creating the independent variables of interest (economic sector and governance sector aid) and collapsing the data into dyadic donor-recipient year observations
  5. Merging the time series cross sectional data with control variables

Preparing the Data 01: Cleaning AidData's China Data and preparing to merge with OECD CRS data

  • The OECD CRS Data does not have information on Chinese foreign aid.
  • This section prepares China AidData to merge with OECD CRS dataset.
  • Note that China provides a disproportionate amount of foreign aid flows through OOF-like rather than ODA-like finance.

Data citation: Dreher, Axel, Andreas Fuchs, Bradley Parks, Austin M. Strange, and Michael J. Tierney. 2017. Aid, China, and Growth: Evidence from a New Global Development Finance Dataset. AidData Working Paper #46. Williamsburg, VA: AidData. Version 1.1.1, released Sept 2018.

Data coverage: 2000-2014 from China to all recipients

*Created in Stata MP 14.1
clear all
set more off
* Set working directory
cd "D:\Ph.D\Dissertation\Data"

import excel "Datasets\GlobalChineseOfficialFinanceDataset_v1.0\GlobalChineseOfficialFinanceDataset_v1.0.xlsx", sheet("ChineseOfficialFinance1.0") firstrow
save "Datasets\China AidData.dta", replace

* Convert anything numeric imported as string to numeric
destring , replace

* Drop observations that are not recommended for research
drop if recommended_for_research==0

* Generate donorcode (OECD CRS country code) for China, for appending to CRS data. 
gen donorcode=730

Use appropriate deflators to convert 2014 USD to 2018 USD (see [OECD Deflator List]{https://stats.oecd.org/Index.aspx?DataSetCode=DACDEFL}).
Drop observations with no amount reported.

drop if usd_defl_2014 ==.
gen usd_commitment_defl = ( usd_defl_2014 * 1.0654)/1000000

* Categorize aid flows
gen oda_like = 0
gen oof_like = 0
gen vague = 0

replace oda_like=1 if flow_class=="ODA-like"
replace oof_like=1 if flow_class=="OOF-like"
replace vague=1 if flow_class=="Vague (Official Finance)"

gen oda_usd_commitment_defl = oda_like*usd_commitment_defl
gen oof_usd_commitment_defl = oof_like*usd_commitment_defl
gen vague_usd_commitment_defl = vague*usd_commitment_defl

Drop variables that are irrelevant to this analysis, rename key variables to match OECD CRS data, and drop aid to multiple recipient countries (these observations are not relevant to the analysis.) Exclude North Korea due to poor data quality/availability, and create placeholder Correlates of War recipient country keys for merging with control data.

drop funding_agency recipient_condensed title description status flow intent amount currency usd_current sources sources_count cofinancing_agency recipient_agencies recipient_agencies_count deflators_used exchange_rates_used start_actual start_planned end_actual year_uncertain end_planned recipient_count all_recipients line_of_credit is_cofinanced is_ground_truthing loan_type interest_rate maturity grace_period grant_element location_details contacts source_triangulation field_completeness
drop umbrella recommended_for_research flow_class project_id

* Rename variables to match OECD CRS dataset

rename donor donorname
rename crs_sector_code sectorcode
rename crs_sector_name sectorname
rename recipient_oecd_code recipientcode
rename recipient_oecd_name recipientname
rename recipient_cow_code recipientcow

* Drop aid to multiple recipients
drop if recipientcode==" "
drop if recipientcode=="298; 282; 288"
drop if recipientcode=="728; 745; 769"
drop if recipientcode=="65; 63"
drop if recipientcode=="635; 764; 728; 745; 769"
drop if recipientcode=="549; 555"
drop if recipientcode=="298; 288; 282"
drop if recipientcode=="298; 282; 288 "
drop if recipientcode=="298; 248; 282"
drop if recipientcode=="288; 282"
drop if recipientcode=="282; 288; 298"
drop if recipientcode=="255; 260; 232"
drop if recipientcode=="440; 454; 463; 437; 428"
drop if recipientcode=="298; 243; 272; 251"
drop if recipientcode=="232; 278; 298"
drop if recipientcode=="251; 298"
drop if recipientcode=="63; "
drop if recipientcode=="; 375; 378; 354; 329; 328; 377"
drop if recipientcode=="; 63; ; 86; 85; ; ; ; 61; 62; 64; 66; ; 93; 71; 65"
drop if recipientcode=="; ; 880; 836; 854; 872; 862; 845; 832; 870; 861; 860; 866; 856; 859; 831"
drop if recipientcode=="; 248"
drop if recipientname=="; Kenya"
drop if recipientname=="Africa, regional"
drop if recipientname=="Oceania, regional"

destring recipientcode, replace
destring recipientcow, replace

* Check that regional and multiple recipient commitments have been dropped
tab recipientname

* Exclude North Korea due to strong underreporting bias (see AidData instructions for more information)
drop if recipientcode==740

*Create place-holder COW codes for countries without one.

* Anguilla 9901
replace recipientcow=  9901 if recipientcode==	376
* Cook Islands 9902
replace recipientcow=  9902 if recipientcode==	831
* Mayotte 9904
replace recipientcow=  9904 if recipientcode==	258
* Montserrat 9905
replace recipientcow=  9905 if recipientcode==	385
* Niue 9906
replace recipientcow=  9906 if recipientcode==	856
* Saint Helena 9907
replace recipientcow=  9907 if recipientcode==	276
* Tokelau 9908
replace recipientcow=  9908 if recipientcode==	868
* Turks and Caicos Islands 9909
replace recipientcow=  9909 if recipientcode==	387
* Wallis and Futuna 9910
replace recipientcow=  9910 if recipientcode==	876

Indicate recipients' region and income group using OECD CRS codes.

gen regioncode=.
gen incomegroupcode=.

replace regioncode=	10002	if recipientcow==	615
replace regioncode=	10002	if recipientcow==	620
replace regioncode=	10002	if recipientcow==	600
replace regioncode=	10002	if recipientcow==	616
replace regioncode=	10002	if recipientcow==	651
replace regioncode=	10003	if recipientcow==	560
replace regioncode=	10003	if recipientcow==	540
replace regioncode=	10003	if recipientcow==	571
replace regioncode=	10003	if recipientcow==	516
replace regioncode=	10003	if recipientcow==	471
replace regioncode=	10003	if recipientcow==	402
replace regioncode=	10003	if recipientcow==	482
replace regioncode=	10003	if recipientcow==	483
replace regioncode=	10003	if recipientcow==	581
replace regioncode=	10003	if recipientcow==	484
replace regioncode=	10003	if recipientcow==	490
replace regioncode=	10003	if recipientcow==	434
replace regioncode=	10003	if recipientcow==	530
replace regioncode=	10003	if recipientcow==	481
replace regioncode=	10003	if recipientcow==	420
replace regioncode=	10003	if recipientcow==	452
replace regioncode=	10003	if recipientcow==	438
replace regioncode=	10003	if recipientcow==	404
replace regioncode=	10003	if recipientcow==	411
replace regioncode=	10003	if recipientcow==	437
replace regioncode=	10003	if recipientcow==	501
replace regioncode=	10003	if recipientcow==	570
replace regioncode=	10003	if recipientcow==	450
replace regioncode=	10003	if recipientcow==	580
replace regioncode=	10003	if recipientcow==	553
replace regioncode=	10003	if recipientcow==	432
replace regioncode=	10003	if recipientcow==	435
replace regioncode=	10003	if recipientcow==	590
replace regioncode=	10003	if recipientcow==	9904
replace regioncode=	10003	if recipientcow==	541
replace regioncode=	10003	if recipientcow==	436
replace regioncode=	10003	if recipientcow==	475
replace regioncode=	10003	if recipientcow==	552
replace regioncode=	10003	if recipientcow==	517
replace regioncode=	10003	if recipientcow==	403
replace regioncode=	10003	if recipientcow==	433
replace regioncode=	10003	if recipientcow==	591
replace regioncode=	10003	if recipientcow==	531
replace regioncode=	10003	if recipientcow==	451
replace regioncode=	10003	if recipientcow==	520
replace regioncode=	10003	if recipientcow==	522
replace regioncode=	10003	if recipientcow==	565
replace regioncode=	10003	if recipientcow==	9907
replace regioncode=	10003	if recipientcow==	625
replace regioncode=	10003	if recipientcow==	626
replace regioncode=	10003	if recipientcow==	572
replace regioncode=	10003	if recipientcow==	510
replace regioncode=	10003	if recipientcow==	461
replace regioncode=	10003	if recipientcow==	500
replace regioncode=	10003	if recipientcow==	439
replace regioncode=	10003	if recipientcow==	551
replace regioncode=	10005	if recipientcow==	53
replace regioncode=	10005	if recipientcow==	94
replace regioncode=	10005	if recipientcow==	40
replace regioncode=	10005	if recipientcow==	42
replace regioncode=	10005	if recipientcow==	92
replace regioncode=	10005	if recipientcow==	90
replace regioncode=	10005	if recipientcow==	41
replace regioncode=	10005	if recipientcow==	91
replace regioncode=	10005	if recipientcow==	80
replace regioncode=	10005	if recipientcow==	51
replace regioncode=	10005	if recipientcow==	70
replace regioncode=	10005	if recipientcow==	93
replace regioncode=	10005	if recipientcow==	95
replace regioncode=	10005	if recipientcow==	52
replace regioncode=	10005	if recipientcow==	9901
replace regioncode=	10005	if recipientcow==	58
replace regioncode=	10005	if recipientcow==	54
replace regioncode=	10005	if recipientcow==	55
replace regioncode=	10005	if recipientcow==	60
replace regioncode=	10005	if recipientcow==	56
replace regioncode=	10005	if recipientcow==	57
replace regioncode=	10005	if recipientcow==	9905
replace regioncode=	10005	if recipientcow==	9909
replace regioncode=	10006	if recipientcow==	160
replace regioncode=	10006	if recipientcow==	145
replace regioncode=	10006	if recipientcow==	140
replace regioncode=	10006	if recipientcow==	155
replace regioncode=	10006	if recipientcow==	100
replace regioncode=	10006	if recipientcow==	130
replace regioncode=	10006	if recipientcow==	110
replace regioncode=	10006	if recipientcow==	150
replace regioncode=	10006	if recipientcow==	135
replace regioncode=	10006	if recipientcow==	115
replace regioncode=	10006	if recipientcow==	165
replace regioncode=	10006	if recipientcow==	101
replace regioncode=	10008	if recipientcow==	811
replace regioncode=	10008	if recipientcow==	710
replace regioncode=	10008	if recipientcow==	850
replace regioncode=	10008	if recipientcow==	731
replace regioncode=	10008	if recipientcow==	812
replace regioncode=	10008	if recipientcow==	820
replace regioncode=	10008	if recipientcow==	712
replace regioncode=	10008	if recipientcow==	840
replace regioncode=	10008	if recipientcow==	800
replace regioncode=	10008	if recipientcow==	860
replace regioncode=	10008	if recipientcow==	816
replace regioncode=	10009	if recipientcow==	371
replace regioncode=	10009	if recipientcow==	373
replace regioncode=	10009	if recipientcow==	372
replace regioncode=	10009	if recipientcow==	705
replace regioncode=	10009	if recipientcow==	703
replace regioncode=	10009	if recipientcow==	702
replace regioncode=	10009	if recipientcow==	701
replace regioncode=	10009	if recipientcow==	704
replace regioncode=	10009	if recipientcow==	700
replace regioncode=	10009	if recipientcow==	760
replace regioncode=	10009	if recipientcow==	775
replace regioncode=	10009	if recipientcow==	780
replace regioncode=	10009	if recipientcow==	750
replace regioncode=	10009	if recipientcow==	781
replace regioncode=	10009	if recipientcow==	790
replace regioncode=	10009	if recipientcow==	770
replace regioncode=	10009	if recipientcow==	771
replace regioncode=	10010	if recipientcow==	338
replace regioncode=	10010	if recipientcow==	640
replace regioncode=	10010	if recipientcow==	347
replace regioncode=	10010	if recipientcow==	349
replace regioncode=	10010	if recipientcow==	344
replace regioncode=	10010	if recipientcow==	345
replace regioncode=	10010	if recipientcow==	346
replace regioncode=	10010	if recipientcow==	341
replace regioncode=	10010	if recipientcow==	343
replace regioncode=	10010	if recipientcow==	339
replace regioncode=	10010	if recipientcow==	369
replace regioncode=	10010	if recipientcow==	370
replace regioncode=	10010	if recipientcow==	359
replace regioncode=	10011	if recipientcow==	692
replace regioncode=	10011	if recipientcow==	630
replace regioncode=	10011	if recipientcow==	645
replace regioncode=	10011	if recipientcow==	663
replace regioncode=	10011	if recipientcow==	9999
replace regioncode=	10011	if recipientcow==	660
replace regioncode=	10011	if recipientcow==	698
replace regioncode=	10011	if recipientcow==	670
replace regioncode=	10011	if recipientcow==	652
replace regioncode=	10011	if recipientcow==	679
replace regioncode=	10012	if recipientcow==	9902
replace regioncode=	10012	if recipientcow==	950
replace regioncode=	10012	if recipientcow==	946
replace regioncode=	10012	if recipientcow==	970
replace regioncode=	10012	if recipientcow==	935
replace regioncode=	10012	if recipientcow==	9906
replace regioncode=	10012	if recipientcow==	983
replace regioncode=	10012	if recipientcow==	987
replace regioncode=	10012	if recipientcow==	986
replace regioncode=	10012	if recipientcow==	910
replace regioncode=	10012	if recipientcow==	940
replace regioncode=	10012	if recipientcow==	9908
replace regioncode=	10012	if recipientcow==	955
replace regioncode=	10012	if recipientcow==	947
replace regioncode=	10012	if recipientcow==	9910
replace regioncode=	10012	if recipientcow==	990

replace incomegroupcode=	10019	if recipientcow==	615
replace incomegroupcode=	10019	if recipientcow==	620
replace incomegroupcode=	10018	if recipientcow==	600
replace incomegroupcode=	10018	if recipientcow==	616
replace incomegroupcode=	10018	if recipientcow==	651
replace incomegroupcode=	10019	if recipientcow==	560
replace incomegroupcode=	10016	if recipientcow==	540
replace incomegroupcode=	10019	if recipientcow==	571
replace incomegroupcode=	10016	if recipientcow==	516
replace incomegroupcode=	10018	if recipientcow==	471
replace incomegroupcode=	10018	if recipientcow==	402
replace incomegroupcode=	10016	if recipientcow==	482
replace incomegroupcode=	10016	if recipientcow==	483
replace incomegroupcode=	10016	if recipientcow==	581
replace incomegroupcode=	10018	if recipientcow==	484
replace incomegroupcode=	10016	if recipientcow==	490
replace incomegroupcode=	10016	if recipientcow==	434
replace incomegroupcode=	10016	if recipientcow==	530
replace incomegroupcode=	10019	if recipientcow==	481
replace incomegroupcode=	10016	if recipientcow==	420
replace incomegroupcode=	10018	if recipientcow==	452
replace incomegroupcode=	10016	if recipientcow==	438
replace incomegroupcode=	10016	if recipientcow==	404
replace incomegroupcode=	10019	if recipientcow==	411
replace incomegroupcode=	10018	if recipientcow==	437
replace incomegroupcode=	10018	if recipientcow==	501
replace incomegroupcode=	10016	if recipientcow==	570
replace incomegroupcode=	10016	if recipientcow==	450
replace incomegroupcode=	10016	if recipientcow==	580
replace incomegroupcode=	10016	if recipientcow==	553
replace incomegroupcode=	10016	if recipientcow==	432
replace incomegroupcode=	10016	if recipientcow==	435
replace incomegroupcode=	10019	if recipientcow==	590
replace incomegroupcode=	10025	if recipientcow==	9904
replace incomegroupcode=	10016	if recipientcow==	541
replace incomegroupcode=	10016	if recipientcow==	436
replace incomegroupcode=	10018	if recipientcow==	475
replace incomegroupcode=	10017	if recipientcow==	552
replace incomegroupcode=	10016	if recipientcow==	517
replace incomegroupcode=	10016	if recipientcow==	403
replace incomegroupcode=	10016	if recipientcow==	433
replace incomegroupcode=	10025	if recipientcow==	591
replace incomegroupcode=	10016	if recipientcow==	531
replace incomegroupcode=	10016	if recipientcow==	451
replace incomegroupcode=	10016	if recipientcow==	520
replace incomegroupcode=	10016	if recipientcow==	522
replace incomegroupcode=	10019	if recipientcow==	565
replace incomegroupcode=	10019	if recipientcow==	9907
replace incomegroupcode=	10016	if recipientcow==	625
replace incomegroupcode=	10016	if recipientcow==	626
replace incomegroupcode=	10018	if recipientcow==	572
replace incomegroupcode=	10016	if recipientcow==	510
replace incomegroupcode=	10016	if recipientcow==	461
replace incomegroupcode=	10016	if recipientcow==	500
replace incomegroupcode=	10016	if recipientcow==	439
replace incomegroupcode=	10016	if recipientcow==	551
replace incomegroupcode=	10025	if recipientcow==	53
replace incomegroupcode=	10019	if recipientcow==	94
replace incomegroupcode=	10019	if recipientcow==	40
replace incomegroupcode=	10019	if recipientcow==	42
replace incomegroupcode=	10018	if recipientcow==	92
replace incomegroupcode=	10018	if recipientcow==	90
replace incomegroupcode=	10016	if recipientcow==	41
replace incomegroupcode=	10018	if recipientcow==	91
replace incomegroupcode=	10019	if recipientcow==	80
replace incomegroupcode=	10019	if recipientcow==	51
replace incomegroupcode=	10019	if recipientcow==	70
replace incomegroupcode=	10018	if recipientcow==	93
replace incomegroupcode=	10019	if recipientcow==	95
replace incomegroupcode=	10025	if recipientcow==	52
replace incomegroupcode=	10025	if recipientcow==	9901
replace incomegroupcode=	10019	if recipientcow==	58
replace incomegroupcode=	10019	if recipientcow==	54
replace incomegroupcode=	10019	if recipientcow==	55
replace incomegroupcode=	10025	if recipientcow==	60
replace incomegroupcode=	10019	if recipientcow==	56
replace incomegroupcode=	10019	if recipientcow==	57
replace incomegroupcode=	10019	if recipientcow==	9905
replace incomegroupcode=	10025	if recipientcow==	9909
replace incomegroupcode=	10019	if recipientcow==	160
replace incomegroupcode=	10018	if recipientcow==	145
replace incomegroupcode=	10019	if recipientcow==	140
replace incomegroupcode=	10025	if recipientcow==	155
replace incomegroupcode=	10019	if recipientcow==	100
replace incomegroupcode=	10019	if recipientcow==	130
replace incomegroupcode=	10019	if recipientcow==	110
replace incomegroupcode=	10019	if recipientcow==	150
replace incomegroupcode=	10019	if recipientcow==	135
replace incomegroupcode=	10019	if recipientcow==	115
replace incomegroupcode=	10025	if recipientcow==	165
replace incomegroupcode=	10019	if recipientcow==	101
replace incomegroupcode=	10016	if recipientcow==	811
replace incomegroupcode=	10019	if recipientcow==	710
replace incomegroupcode=	10018	if recipientcow==	850
replace incomegroupcode=	10017	if recipientcow==	731
replace incomegroupcode=	10016	if recipientcow==	812
replace incomegroupcode=	10019	if recipientcow==	820
replace incomegroupcode=	10018	if recipientcow==	712
replace incomegroupcode=	10018	if recipientcow==	840
replace incomegroupcode=	10019	if recipientcow==	800
replace incomegroupcode=	10016	if recipientcow==	860
replace incomegroupcode=	10018	if recipientcow==	816
replace incomegroupcode=	10018	if recipientcow==	371
replace incomegroupcode=	10019	if recipientcow==	373
replace incomegroupcode=	10018	if recipientcow==	372
replace incomegroupcode=	10019	if recipientcow==	705
replace incomegroupcode=	10018	if recipientcow==	703
replace incomegroupcode=	10018	if recipientcow==	702
replace incomegroupcode=	10019	if recipientcow==	701
replace incomegroupcode=	10018	if recipientcow==	704
replace incomegroupcode=	10016	if recipientcow==	700
replace incomegroupcode=	10016	if recipientcow==	760
replace incomegroupcode=	10016	if recipientcow==	775
replace incomegroupcode=	10018	if recipientcow==	780
replace incomegroupcode=	10018	if recipientcow==	750
replace incomegroupcode=	10019	if recipientcow==	781
replace incomegroupcode=	10016	if recipientcow==	790
replace incomegroupcode=	10018	if recipientcow==	770
replace incomegroupcode=	10016	if recipientcow==	771
replace incomegroupcode=	10025	if recipientcow==	338
replace incomegroupcode=	10019	if recipientcow==	640
replace incomegroupcode=	10018	if recipientcow==	347
replace incomegroupcode=	10025	if recipientcow==	349
replace incomegroupcode=	10025	if recipientcow==	344
replace incomegroupcode=	10019	if recipientcow==	345
replace incomegroupcode=	10019	if recipientcow==	346
replace incomegroupcode=	10019	if recipientcow==	341
replace incomegroupcode=	10019	if recipientcow==	343
replace incomegroupcode=	10019	if recipientcow==	339
replace incomegroupcode=	10018	if recipientcow==	369
replace incomegroupcode=	10019	if recipientcow==	370
replace incomegroupcode=	10018	if recipientcow==	359
replace incomegroupcode=	10025	if recipientcow==	692
replace incomegroupcode=	10019	if recipientcow==	630
replace incomegroupcode=	10019	if recipientcow==	645
replace incomegroupcode=	10018	if recipientcow==	663
replace incomegroupcode=	10018	if recipientcow==	9999
replace incomegroupcode=	10019	if recipientcow==	660
replace incomegroupcode=	10025	if recipientcow==	698
replace incomegroupcode=	10025	if recipientcow==	670
replace incomegroupcode=	10018	if recipientcow==	652
replace incomegroupcode=	10016	if recipientcow==	679
replace incomegroupcode=	10019	if recipientcow==	9902
replace incomegroupcode=	10019	if recipientcow==	950
replace incomegroupcode=	10016	if recipientcow==	946
replace incomegroupcode=	10019	if recipientcow==	970
replace incomegroupcode=	10016	if recipientcow==	935
replace incomegroupcode=	10019	if recipientcow==	9906
replace incomegroupcode=	10019	if recipientcow==	983
replace incomegroupcode=	10018	if recipientcow==	987
replace incomegroupcode=	10019	if recipientcow==	986
replace incomegroupcode=	10018	if recipientcow==	910
replace incomegroupcode=	10016	if recipientcow==	940
replace incomegroupcode=	10018	if recipientcow==	9908
replace incomegroupcode=	10019	if recipientcow==	955
replace incomegroupcode=	10016	if recipientcow==	947
replace incomegroupcode=	10019	if recipientcow==	9910
replace incomegroupcode=	10019	if recipientcow==	990

Misc. cleanup

  • Eliminate finances provided at the regional level, since these are beyond the scope of the projects.
  • Create keys for countries that are not automatically matched using the kountry command.
  • Eliminate recipients that are not OECD ODA eligible, since these are beyond the scope of the project.
* Drop some misc regional finance
drop if recipientname=="Africa, regional"
drop if recipientname=="Oceania, regional"

* Serbia
replace recipientcode=63 if recipientname=="Serbia"
replace recipientcow=345 if recipientname=="Serbia"
replace regioncode=10010 if recipientname=="Serbia"
replace incomegroupcode=10019 if recipientname=="Serbia"

* Timor-Leste
replace recipientcode=765 if recipientname=="Timor-Leste"
replace recipientcow=860 if recipientname=="Timor-Leste"
replace regioncode=10008 if recipientname=="Timor-Leste"
replace incomegroupcode=10016 if recipientname=="Timor-Leste"

* Palestine
replace recipientcode=550 if recipientname=="Palestinian Adm. Areas"
replace recipientcow=667 if recipientname==	"Palestinian Adm. Areas"
replace regioncode=10011 if recipientname=="Palestinian Adm. Areas"
replace incomegroupcode=10018 if recipientname=="Palestinian Adm. Areas"

* Antigua and Barbuda 
replace recipientcode=377 if recipientname=="Antigua and Barbuda"
replace recipientcow=255 if recipientname==	"Antigua and Barbuda"
replace regioncode=10005 if recipientname=="Antigua and Barbuda"
replace incomegroupcode=10019 if recipientname=="Antigua and Barbuda"

* South Sudan
replace recipientname="South Sudan" if recipient_iso3=="SSD"
replace recipientcode=279 if recipientname=="South Sudan"
replace recipientcow=626 if recipientname=="South Sudan"
replace regioncode=10003 if recipientname=="South Sudan"
replace incomegroupcode=10016 if recipientname=="South Sudan"

* Yemen
replace regioncode=10011 if recipientname=="Yemen"
replace incomegroupcode=10016 if recipientname=="Yemen"

* Drop countries not eligible for OECD ODA
drop if recipient_iso3=="NZL"
drop if recipient_iso3=="RUS"
drop if recipient_iso3=="ROU"
drop if recipient_iso3=="BGR"
drop if recipient_iso3=="CYP"
drop if recipient_iso3=="ARE"
drop if recipient_iso3=="BHS"

Create names for income groups and regions.

gen incomegroupname=""
gen regionname=""

replace incomegroupname="LDCs" if incomegroupcode==10016
replace incomegroupname="Other LICs" if incomegroupcode==10017
replace incomegroupname="LMICs" if incomegroupcode==10018
replace incomegroupname="UMICs" if incomegroupcode==10019
replace incomegroupname="MADCTs" if incomegroupcode==10025

replace regionname="North of Sahara" if regioncode==10002
replace regionname="South of Sahara" if regioncode==10003
replace regionname="Caribbean & Central America" if regioncode==10005
replace regionname="South America" if regioncode==10006
replace regionname="Far East Asia" if regioncode==10008
replace regionname="South & Central Asia" if regioncode==10009
replace regionname="Europe" if regioncode==10010
replace regionname="Middle East" if regioncode==10011
replace regionname="Oceania" if regioncode==10012

Assign parent channels to projects

Link China's ODA-like projects to OECD DAC parent channel codes and names, based on the implementing partner information from AidData China Dataset (note: OOF-like and vague implementing partners not coded here.)

gen parentchannelcode=.
gen parentchannelname=""

replace parentchannelcode=	10000	if implementing_agency==	"Chinese Embassy, Government Agency; Central Committee for Drug Abuse Control (Myanmar), Government Agency"
replace parentchannelcode=	11000	if implementing_agency==	"China Embassy of Colombia , Government Agency"
replace parentchannelcode=	11000	if implementing_agency==	"China Ministry of Agriculture, Government Agency"
replace parentchannelcode=	11000	if implementing_agency==	"China Overseas Engineering Group Co., Ltd. , Government Agency"
replace parentchannelcode=	11000	if implementing_agency==	"Chinese Embassy, Government Agency"
replace parentchannelcode=	11000	if implementing_agency==	"Confucius Institute, Government Agency"
replace parentchannelcode=	11000	if implementing_agency==	"Export-Import Bank of China, Government Agency"
replace parentchannelcode=	11000	if implementing_agency==	"People's Liberation Army (PLA), Government Agency"
replace parentchannelcode=	11000	if implementing_agency==	"People's Liberation Army of China, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Aceh and Nias Rehabilitation and Reconstruction Agency, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Afghanistan Ministry of Foreign Affairs, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Afghanistan Ministry of Higher Education, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Afghanistan Ministry of Public Health, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Afghanistan Ministry of the Interior, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Angola Social and Productive Reintegration Commission for Demobilized and Displaced Persons, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Angolan Armed Forces, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Botswana Democratic Party, Political Party"
replace parentchannelcode=	12000	if implementing_agency==	"Caisse Autonome d'Amortissement - National Debt Management Agency, Government Agency; Ministry of Energy and Water Resources, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Caisse Autonome d'Amortissement - National Debt Management Agency, Government Agency; Ministry of Post and Telecommunications, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Commercial Farmers' Union of Zimbabwe, National NGO; Zimbabwean District Decelopment Fund (DDF), Government Agency; Zimbabwe Agricultural and Rural Development Authority, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Cote d'Ivoire's Construction and Housing Company (SICOGI) , Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Energy Commission of Ghana, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Ethiopia Revenue and Customs Authority, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Fiji Fishing Ministry, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Ghana Ministry of Finance, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Ghana Ministry of Health, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Gisozi Memorial Site, State-Owned Company"
replace parentchannelcode=	12000	if implementing_agency==	"Guinea-Bissau Ministry for Foreign Affairs & International Cooperation, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Maldives Ministry of Education, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Maldives Ministry of Environment and Energy, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Maldives Ministry of Fisheries and Agriculture, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Ministry of Culture and Tourism, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Ministry of Finance, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Ministry of Health"
replace parentchannelcode=	12000	if implementing_agency==	"Ministry of Information and Communications Technology, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Ministry of Public Work, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Myanmar Ministry of Construction, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"National Commission for Human Development , Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"National Disaster Management Institute (INGC), Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"National Election Committee of Cambodia"
replace parentchannelcode=	12000	if implementing_agency==	"National People's Congress, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"National Ports Administration of Uruguay (ANP)"
replace parentchannelcode=	12000	if implementing_agency==	"National Union for the Total Independence of Angola (UNITA), Political Party"
replace parentchannelcode=	12000	if implementing_agency==	"Pakistan Bait-ul-Mal (PBM) , Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Pakistan Ministry of Culture, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Papua New Guinea Department of Foreign Affairs, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Parliament of Fiji, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Philippines Bureau of Customs, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Philippines Department of Foreign Affairs, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Republic of Fiji Military Forces, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Royal Papua New Guinea Police Constabulary, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Rwandan Ministry of Foreign Affairs, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Space and Upper Atmosphere Research Commission (SUPARCO), Pakistan, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Zambia Government, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Zambia Investment Centre (ZIC), Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Zimbabwe Ministry of Finance, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Zimbabwe Ministry of Foreign Affairs, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Zimbabwe Ministry of Health and Child Welfare, Government Agency"
replace parentchannelcode=	12000	if implementing_agency==	"Zimbabwe Senate, Government Agency"
replace parentchannelcode=	21000	if implementing_agency==	"Food and Agriculture Organization of the United Nations (FAO), Multilateral"
replace parentchannelcode=	21000	if implementing_agency==	"International Committee of the Red Cross, International NGO"
replace parentchannelcode=	21000	if implementing_agency==	"MCA Foundation Flood Relief Efforts, National NGO"
replace parentchannelcode=	21000	if implementing_agency==	"Red Cross Society, International NGO"
replace parentchannelcode=	21000	if implementing_agency==	"The Adventist Development and Relief Agency International, International NGO"
replace parentchannelcode=	22000	if implementing_agency==	"Malaysian Red Crescent Society, National NGO"
replace parentchannelcode=	22000	if implementing_agency==	"Red Cross Society of China, Government Agency"
replace parentchannelcode=	22000	if implementing_agency==	"Red Cross Society of China, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Ashika Relief Fund, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Burundi Red Cross, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Cambodian Mine Action Centre, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Eagle Trust Fund, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Kenya Red Cross Society, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Lwini Foundation; Angolan Paralympics Committee"
replace parentchannelcode=	23000	if implementing_agency==	"Mashambanzou Care Trust, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"National Miners Association of Zimbabwe, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Red Crescent Society of Pakistan, International NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Red Cross Society of Indonesia, National NGO"
replace parentchannelcode=	23000	if implementing_agency==	"Zanzibar Youth Wind Band, Regional NGO; Zanzibar Youth Education Enviroment Development Support Association, Regional NGO"
replace parentchannelcode=	31000	if implementing_agency==	"China-Africa Development Fund, Public Private Partnership"
replace parentchannelcode=	31000	if implementing_agency==	"Ministry of Defense, Government Agency; Xi'an Aircraft International Corporation (XAIC), State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"Ministry of Finance and Economic Development, Government Agency; Huawei Technologies Co., Ltd., Private Sector"
replace parentchannelcode=	31000	if implementing_agency==	"Ministry of Health and Quality of Life, Government Agency; China IPPR International Engineering Corporation, State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"Th͍i NguyÍ_n Iron and Steel Company (TISCO), Public Private Partnership"
replace parentchannelcode=	31000	if implementing_agency==	"Zambia Electricity Supply Corp. (ZESCO), Public Private Partnership; Shanghai Construction Group General Co., State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"Zimbabwe Iron and Steel Company (ZISCO), Public Private Partnership"
replace parentchannelcode=	40000	if implementing_agency==	"World Food Program (WFP), Multilateral"
replace parentchannelcode=	40000	if implementing_agency==	"World Food Programme"
replace parentchannelcode=	40000	if implementing_agency==	"World Health Organization (WHO), Multilateral"
replace parentchannelcode=	41000	if implementing_agency==	"UNHCR, International NGO"
replace parentchannelcode=	41000	if implementing_agency==	"United Nations Development Programme (UNDP)"
replace parentchannelcode=	41000	if implementing_agency==	"United Nations Educational, Scientific and Cultural Organization (UNESCO), Multilateral"
replace parentchannelcode=	41000	if implementing_agency==	"United Nations High Commissioner for Refugees (UNHCR), Multilateral; China Ministry of Foreign Affairs, Government Agency"
replace parentchannelcode=	44000	if implementing_agency==	"World Bank, Multilateral"
replace parentchannelcode=	51000	if implementing_agency==	"Beijing Institute of Architectural Design, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Central Luzon State University, Academic, Training and Research; Philippine Rice Research Institute, Government Agency; Philippines-Sino Center for Agricultural Technology, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Chinese Academy of Tropical Agricultural Sciences (CATAS), Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Festus Gonteb Primary School, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Fujian Agriculture and Forestry University, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Guangxi Bagui Agricultural Science and Technology Company, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Masaka Hospital, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Mophane Primary School, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"National Research Institute of Papua New Guinea, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Nnamdi Azikiwe University"
replace parentchannelcode=	51000	if implementing_agency==	"Philippines-Sino Center for Agricultural Technology, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"Sorong Fishing School"
replace parentchannelcode=	51000	if implementing_agency==	"Tsinghua University, Academic, Training and Research; Peking University, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"University of Ghana, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"University of Zambia, Academic, Training and Research"
replace parentchannelcode=	51000	if implementing_agency==	"University of Zimbabwe, Academic, Training and Research; Danhiko Project, Academic, Training and Research"
replace parentchannelcode=	60000	if implementing_agency==	"Beijing Construction Engineering Group Co., Ltd. (BCEG), State-Owned Company; AÍ©roports de Paris (ADPI), Private Sector"
replace parentchannelcode=	60000	if implementing_agency==	"CAMCO International, Private Sector"
replace parentchannelcode=	60000	if implementing_agency==	"Gezhouba Group Cement Co. Ltd., State-Owned Company; PT Praba Indopersada, Private Sector"
replace parentchannelcode=	60000	if implementing_agency==	"Linika, Private Sector; China IPPR International Engineering Corporation, State-Owned Company"
replace parentchannelcode=	60000	if implementing_agency==	"Merpati Nusantara Airlines, State-Owned Company; Xi'an Aircraft Industrial Corporation, State-Owned Company"
replace parentchannelcode=	60000	if implementing_agency==	"Shanghai Construction Group General Co., State-Owned Company; Urban Development Corporation of Trinidad and Tobago Limited, Private Sector"
replace parentchannelcode=	60000	if implementing_agency==	"Sierra Leone Telecommunications Co. (Sierratel), State-Owned Company; Huawei Technologies Co., Ltd., Private Sector"
replace parentchannelcode=	60000	if implementing_agency==	"Standard Bank of South Africa Ltd., Private Sector; NetOne, State-Owned Company; Huawei Technologies Co., Ltd., Private Sector"
replace parentchannelcode=	60000	if implementing_agency==	"Zhongxing Technologies (ZTE), State-Owned Company; Econet Telecom Lesotho, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Avitation Industry Corporation of China, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Beijing Construction Engineering Group Co., Ltd. (BCEG), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Beijing G&M Engineering Construction Co., Ltd."
replace parentchannelcode=	61000	if implementing_agency==	"Beijing G&M Engineering Construction Co., Ltd., Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Beijing Holley-Cotect Pharmaceuticals Co., Ltd., Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Beijing Real Estate Group Co Ltd"
replace parentchannelcode=	61000	if implementing_agency==	"CGC Overseas Construction Co., Ltd. (CGCOC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"CITIC Group, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"CNPC Great Wall Drilling Company (GWDC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Changjiang & Jinggong Steel Building Group, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"China Airport Construction Group Corporation of CAAC, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China CAMC Engineering Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Civil Engineering Construction Botswana (pty) Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Civil Engineering Construction Corporation (CCECC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Communications Construction Co., Ltd. (CCCC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Communications Construction Co., Ltd. (CCCC), State-Owned Company; China Road and Bridge Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Communications Construction Company (CCCC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Construction Bank Corporation (CCB), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Construction Engineering Corporation Company (CCECC)"
replace parentchannelcode=	61000	if implementing_agency==	"China Construction International Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Dalian International Cooperation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China First Automobile Works Group Corporation (FAW), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China First Highway Engineering Company (CFHEC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Friendship Development International Engineering Design & Construction Corporation; China Railway Shisiju Group Corporation (CRSSG), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Geo-Engineering Corporation (CGC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Geo-Engineering Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Gezhouba Group Co. Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Gezhouba Group Company Ltd. (CGGC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Great Wall Industry Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Guangdong International Corporation"
replace parentchannelcode=	61000	if implementing_agency==	"China Guangdong Overseas Construction Supervision CO.LTD"
replace parentchannelcode=	61000	if implementing_agency==	"China Guangdong Xinguang International Group, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Hainan International Cooperation"
replace parentchannelcode=	61000	if implementing_agency==	"China Hainan International Cooperation; China Guangdong International Corporation"
replace parentchannelcode=	61000	if implementing_agency==	"China Harbour Engineering Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Harbour Engineering Co., Ltd., State-Owned Company; Cheddi Jagan International Airport Corp, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Harbour Engineering Co., Ltd., State-Owned Company; China National Electric Equipment Corporation (CNEEC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Heilongjiang International Economic and Technical Cooperative Cooperation; Chongqing Meilian International Warehouse and Transport Group Co Ltd"
replace parentchannelcode=	61000	if implementing_agency==	"China Huadian Corporation (CHD), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China IPPR International Engineering Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China International Telecommunication Construction Corporaion (CITCC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China International Water and Electrical Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Jiangsu International Economic and Technical Cooperation Company, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Jiangsu International, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Jiangsu International, State-Owned Company; Shanghai International Technology & Trade Corporation (ITTC)"
replace parentchannelcode=	61000	if implementing_agency==	"China Jiangxi Corporation for International Economic & Technical Cooperation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Jiangxi Province Water and Hydro Electric Construction Company, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"China Machine-Building International Corporation (CMIC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Machinery Engineering Corporation (CMEC) , State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Machinery Engineering Corporation (CMEC) , State-Owned Company; China Gezhouba Group Company Ltd. (CGGC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Metallurgical Group Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Aero-Technology (CATIC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Aero-Technology Import & Export Corporation (CATIC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Agricultural Development Group, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Chemical Engineering Corporation (CNCEC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Complete Plant Import & Export Corporation Group (COMPLANT), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Electric Engineering Co., Ltd., State-Owned Company; SinoHydro, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Heavy Machinery Co. , State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Machinery and Equipment Import & Export Corporation, State-Owned Company; China Railway First Survey and Design Institute Group Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Nuclear Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Overseas Engineering Corporation (COVEC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China National Petroleum Corporation (CNPC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Northeast Architectural Design and Research Institute Co Ltd (CNADRI), Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"China Overseas Engineering Group Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Petroleum Technology & Development Corporation (CPTDC), State-Owned Company; China Petroleum Pipeline Engineering Corporation (CPPEC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway Construction Corporation (CRCC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway Construction Corporation (CRCC), State-Owned Company; Sichuan Road & Bridge Co., Ltd., Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway Engineering Group Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway Fifth Engineering Group"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway First Group Co,. Ltd, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway Group Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway Group Ltd. (CREC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway Materials Import & Export Co., Ltd. (CRMIE), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Railway Wuju Group Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Road & Bridge Corporation (CRBC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Road & Bridge Corporation (CRBC), State-Owned Company; Guangzhou Wanan Construction Supervision, Co. Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Road and Bridge Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Road and Bridge Corporation, State-Owned Company; Guangzhou Wanan Construction Supervision, Co. Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Road and Bridge Corporation, State-Owned Company; SinoHydro , State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Shandong International Economic and Technical Cooperation Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Shanghai (Group) Corporation for Foreign Economic and Technological Cooperation"
replace parentchannelcode=	61000	if implementing_agency==	"China Shenyang International Economic & Technical Corporation (CSYIC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China State Construction Engineering Corporation (CSCEC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China State Construction Engineering Corporation (CSCEC), State-Owned Company; AÍ©roports de Paris Group, Private Sector; Airports of Mauritius"
replace parentchannelcode=	61000	if implementing_agency==	"China State Construction Engineering Corporation (CSCEC), State-Owned Company; China Civil Engineering Construction Botswana (pty) Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Tiesiju Civil Engineering Group Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Wuyi Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"China Wuyi Co., Ltd., State-Owned Company; China Road & Bridge Corporation (CRBC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Chinese National Overseas Engineering Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Chongqing Zhongyi Seed Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Dalian Zhucheng Construction Group Co Ltd"
replace parentchannelcode=	61000	if implementing_agency==	"Dongfeng Automobile Co., Ltd. (DFAC)"
replace parentchannelcode=	61000	if implementing_agency==	"Electricite du Laos, State-Owned Company; Sinohydro Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Fruit Design and Build Ltd, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Gansu Geo-Engineering Co. Ltd."
replace parentchannelcode=	61000	if implementing_agency==	"Gansu Overseas Engineering Corporation"
replace parentchannelcode=	61000	if implementing_agency==	"Guangdong Construction Engineering Group Co., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Guangdong Foreign Construction Co., Ltd (GDFC), Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Guangdong Foreign Construction Co., Ltd (GDFC), Private Sector; China Road and Bridge Corporation, State-Owned Company; Guangzhou Wanan Construction Supervision, Co. Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Guangdong Xinguang International Engineering Company Ltd"
replace parentchannelcode=	61000	if implementing_agency==	"Guangdong Xinguang International Group, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Guangdong Yuanda Water Conservancy & Hydro Power Group Co.,Ltd, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Guangzhou Wanan Construction Supervision, Co. Ltd., State-Owned Company; Shanghai Construction Group General Co., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Guilin Pharmaceutical Co., Ltd., Private Sector; Beijing Holley-Cotect Pharmaceuticals Co., Ltd., Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Haier Group, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Hainan Construction Engineering Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Harbin Power Equipment Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Hebei Hydraulic Engineering Bureau; China Gezhouba Group Company Ltd. (CGGC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Huachang International Economic and Technical Corporation in Jiangxi Province , State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Hualong Construction Company, State-Owned Company; Gansu Hualong Overseas Engineering Corporation"
replace parentchannelcode=	61000	if implementing_agency==	"Huawei Technologies Co., Ltd., Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Huawei Technologies Co., Ltd., Private Sector; Camtel, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Huawei Technologies Co., Ltd., Private Sector; Islamabad Chamber of Commerce & Industry (ICCI), Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Hubei Province Lianfeng Overseas Agriculture Development Co., Ltd (Hubei Lianfeng), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Hunan Constructing Engineering Group Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Hunan Construction Engineering Group Corporation of China, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Hunan International Engineering Cooperation Company"
replace parentchannelcode=	61000	if implementing_agency==	"Hydrochina Corporation, State-Owned Company; CGC Overseas Construction Co., Ltd. (CGCOC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"International Telecommunication Construction Corporation (CITCC), State-Owned Company; China Communications Construction Company (CCCC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"International Telecommunication Construction Corporation (CITCC), State-Owned Company; China Comservice International, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"International Water and Electric Corporation, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Jiangsu Construction Engineering Group Co., Ltd."
replace parentchannelcode=	61000	if implementing_agency==	"Jiangsu Natong; Gansu Hualong Overseas Engineering Corporation"
replace parentchannelcode=	61000	if implementing_agency==	"Jiangxi Corporation of International Economic and Technical Cooperation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Nanjing Architectural Design & Research Institute Co. Ltd.; China Civil Engineering Construction Corporation (CCECC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Nanjing Construction Machinery Co.,Ltd. , State-Owned Company; Complant Hong Kong, Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Nanjing Dadi Construction Group Co. Ltd."
replace parentchannelcode=	61000	if implementing_agency==	"Nanjing Les Information Technology, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"PAN-CHINA CONSTRUCTION GROUP CO.,LTD., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Qingdao Construction Group Ltd."
replace parentchannelcode=	61000	if implementing_agency==	"Qingjian Group Co., Ltd (CNQC)"
replace parentchannelcode=	61000	if implementing_agency==	"Royco Ready Mix Concrete; China Civil Engineering Construction Corporation (CCECC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"SINOMACH - China National Machinery Industry Corporation Ltd., State-Owned Company; Hydrochina Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Senelec, State-Owned Company; China Machinery Engineering Corporation (CMEC) , State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Shandong Yantai Construction Company, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Shangdong Qilu Petrochemical Engineering Co., Ltd., Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Shanghai Construction Group General Co., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Shanghai Construction Group General Co., State-Owned Company; Guangzhou Wanan Construction Supervision, Co. Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Shanxi Construction Engineering (Group) Corporation, Public Private Partnership"
replace parentchannelcode=	61000	if implementing_agency==	"Shengli Engineering Construction Co., Ltd., Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Shenyang International Economic and Technical Cooperation Co. Ltd, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Sichuan Huaqiao Fenghuang Group Co., Ltd."
replace parentchannelcode=	61000	if implementing_agency==	"SinoHydro , State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"SinoHydro , State-Owned Company; CITIC Construction Group, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Sinohydro Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Sinohydro Corporation, State-Owned Company; Hydrochina Corporation, State-Owned Company; China Overseas Construction Group Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"StarTimes, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Suntime International Techno-economic co-operation, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Suzhou Golden Swallow Purification Co., Ltd.; Beijing Urban Construction Group Co., Ltd., State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Tebian Electric Apparatus, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Top International Engineering Corporation"
replace parentchannelcode=	61000	if implementing_agency==	"Transtech Engineering Corporation (TEC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Weihai International Economic & Technical Cooperative Co., Ltd (WIETC), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Wuhan Nanhua High-speed Ship Engineering Co., Ltd"
replace parentchannelcode=	61000	if implementing_agency==	"Xi'an Aircraft Industrial Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Xi'an Electric Manufacturing Corp (XD), Private Sector; Transmission Company of Nigeria, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Yanjian Group Co. Ltd. , Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Yunnan Construction Engineering Group Corporation (YNJG)"
replace parentchannelcode=	61000	if implementing_agency==	"ZTE Corporation, Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Zhejiang Electric Power Construction Co., Ltd. (ZEPC), State-Owned Company; Guangzhou Shipyard International Co, Ltd., Private Sector"
replace parentchannelcode=	61000	if implementing_agency==	"Zhejiang Sifang Group Corporation, State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Zhongding International Engineering Co., Ltd. (ZIEC); China Guangdong Overseas Construction Supervision CO.LTD"
replace parentchannelcode=	61000	if implementing_agency==	"Zhongxing Technologies (ZTE), State-Owned Company"
replace parentchannelcode=	61000	if implementing_agency==	"Zhongxing Technologies (ZTE), State-Owned Company; Huawei Technologies Co., Ltd., Private Sector; Alcatel-Lucent Shanghai Bell Co., Ltd., State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Anhui Construction Engineering Group, Private Sector"
replace parentchannelcode=	62000	if implementing_agency==	"Anhui Foreign Economic Construction Group Co., Ltd. (AFECC), State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Anhui Longan Construction Company, State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Bangladesh Chemical Industries Corporation , State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Bolivian Fiscal Oilfields (YPFB) , State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Botswana Housing Corporation, State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Grain Marketing Board (GMB), State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Ha Bac Nitrogen Fertilizers and Chemicals, State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Haiyu Mozambique Mining Company, State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Kenya Power and Light Company (KPLC), State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"MCC Communication Engineering Technology Company, Private Sector"
replace parentchannelcode=	62000	if implementing_agency==	"NetOne, State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Ningbo Construction Group Co, Ltd."
replace parentchannelcode=	62000	if implementing_agency==	"Olivine Industries, Ltd., Private Sector"
replace parentchannelcode=	62000	if implementing_agency==	"Post and Telecommunications Ministry; TeleTalk Bangladesh, Ltd., State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Radio Centrafrique, State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Société Nigérienne des Télécommunications or Nigerien Telecommunications Society (SONITEL), State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"South Pacific Tourism Organization"
replace parentchannelcode=	62000	if implementing_agency==	"Sudan Airports Holding Company"
replace parentchannelcode=	62000	if implementing_agency==	"TTCL Public Company Limited (TTCL), Private Sector"
replace parentchannelcode=	62000	if implementing_agency==	"Zambia National Broadcasting Corp. (ZNBC), State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Zambia Telecommunication Co., Ltd. (Zamtel), State-Owned Company"
replace parentchannelcode=	62000	if implementing_agency==	"Zimbabwe Electricity Supply Authority (ZESA), State-Owned Company; China National Aero-Technology Import & Export Corporation (CATIC), State-Owned Company"
replace parentchannelcode=	90000	if implementing_agency==	"Afghanistan Jamhuriat Hospital"
replace parentchannelcode=	31000	if implementing_agency==	"CGC Overseas Construction Co., Ltd. (CGCOC), State-Owned Company; Ministry of Energy and Water Resources, Government Agency"
replace parentchannelcode=	31000	if implementing_agency==	"CIMA, Private Sector; Agence Congolais des Grands Travaux, Government Agency; Sinohydro Corporation, State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"China Machinery Engineering Corporation (CMEC) , State-Owned Company; Ministry of Energy and Water Resources, Government Agency; China National Electric Engineering Co., Ltd., State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"China National Complete Plant Import & Export Corporation Group (COMPLANT), State-Owned Company; Housing Agency of Jamaica Limited (HAJ), Government Agency"
replace parentchannelcode=	31000	if implementing_agency==	"China National Construction & Agricultural Machinery Import & Export Corporation (CAMCO), State-Owned Company; Philippine Department of Agriculture (DA), Government Agency"
replace parentchannelcode=	31000	if implementing_agency==	"China National Construction & Agricultural Machinery Import & Export Corporation (CAMCO), State-Owned Company; Philippines National Irrigation Administration, Government Agency"
replace parentchannelcode=	31000	if implementing_agency==	"China National Electric Equipment Corporation (CNEEC), State-Owned Company; China Jiangxi Province Water and Hydro Electric Construction Company, Private Sector; China Ministry of Foreign Affairs, Government Agency; China Railway 14th .Construction Bureau Co., Ltd (China Railway Shisiju Group Corporation), State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"China National Heavy Machinery Co. , State-Owned Company; Cambodia, Government Agency"
replace parentchannelcode=	60000	if implementing_agency==	"China National Overseas Engineering Corporation (COVEC), State-Owned Company; Botswana Housing Corporation, State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"China Railway Construction Corporation (CRCC), State-Owned Company; Bolivia Highway Administration (ABC) , Government Agency"
replace parentchannelcode=	90000	if implementing_agency==	"China-Zimbabwe Friendship Hospital, Foundation"
replace parentchannelcode=	90000	if implementing_agency==	"Demonstration Centre of China Agricultural Technology inZimbabwe, Foundation; MAE Northern Company; The Research Institute of China Agricultural Mechanization, Private Sector"
replace parentchannelcode=	31000	if implementing_agency==	"Ethiopia Roads Authority, Government Agency; China Communications Construction Company (CCCC), State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"Grace Mugabe Foundation; Anhui Foreign Economic Construction Group Co., Ltd. (AFECC), State-Owned Company"
replace parentchannelcode=	63000	if implementing_agency==	"Industrial Development Corporation (IDC) , State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"Intergovernmental Authority on Development (IGAD); China Nonferrous Metal Mining (Group) Co., Ltd. (CNMC), State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"Mauritian Development Bank, Government Agency; China Jiangsu International Economic and Technical Cooperation Company, State-Owned Company"
replace parentchannelcode=	31000	if implementing_agency==	"Mauritian Public Utilities Ministry, Government Agency; Beijing Construction Engineering Group Co., Ltd. (BCEG), State-Owned Company"
replace parentchannelcode=	90000	if implementing_agency==	"Ms Yanjian Company Limited, Private Sector; Beijing Institute of Architectural Design, Academic, Training and Research"
replace parentchannelcode=	90000	if implementing_agency==	"National Disaster Management Organization (NADMO), Government Agency; Ghan Red Cross Society, National NGO"
replace parentchannelcode=	31000	if implementing_agency==	"Shandong High Speed Qilu Construction Group Haiyang Corporation Ltd., State-Owned Company; Maldives National Centre for Linguistic and Historical Research, Government Agency"
replace parentchannelcode=	31000	if implementing_agency==	"Yuan Longping High-Tech Agriculture Co., Ltd. (LPHT), State-Owned Company; Liberian Ministry of Agriculture, Government Agency; Central Agricultural Research Institute (CARI), Academic, Training and Research"

Add a parentchannelname field to describe all parent channels.

replace parentchannelname="Public Sector Institutions" if parentchannelcode==10000
replace parentchannelname="Donor Government" if parentchannelcode==11000
replace parentchannelname="Recipient Government" if parentchannelcode==12000
replace parentchannelname="Third country government" if parentchannelcode==13000
replace parentchannelname="NGOs and civil society" if parentchannelcode==20000
replace parentchannelname="International NGO" if parentchannelcode==21000
replace parentchannelname="Donor country-based NGO" if parentchannelcode==22000
replace parentchannelname="Developing country-based NGO" if parentchannelcode==23000
replace parentchannelname="Public-Private Parnerships and Networks" if parentchannelcode==30000
replace parentchannelname="PPPs" if parentchannelcode==31000
replace parentchannelname="Network" if parentchannelcode==32000
replace parentchannelname="Multilateral Organizations" if parentchannelcode==40000
replace parentchannelname="United Nations agency, fund or commission" if parentchannelcode==41000
replace parentchannelname="EU Institutions" if parentchannelcode==42000
replace parentchannelname="IMF" if parentchannelcode==43000
replace parentchannelname="WB" if parentchannelcode==44000
replace parentchannelname="WTO" if parentchannelcode==45000
replace parentchannelname="Regional Development Bank" if parentchannelcode==46000
replace parentchannelname="Other Multilateral" if parentchannelcode==47000
replace parentchannelname="University, research institute, or think tank" if parentchannelcode==51000
replace parentchannelname="Private Sector institution" if parentchannelcode==60000
replace parentchannelname="Private Sector in provider country" if parentchannelcode==61000
replace parentchannelname="Private sector in recipient country" if parentchannelcode==62000
replace parentchannelname="Private sector in third country" if parentchannelcode==63000
replace parentchannelname="Other" if parentchannelcode==90000

Rename fields from China data to OECD standards in order to append with OECD CRS Data, and keep only positive project commitments.

rename usd_commitment_defl usd_commitment_defl_all_finance
rename oda_usd_commitment_defl usd_commitment_defl
rename oof_usd_commitment_defl china_oof
rename vague_usd_commitment_defl china_vague

keep if usd_commitment_defl>0

Limit to variables that exist in the OECD CRS Data.

keep year donorcode donorname sectorcode sectorname recipientcow recipientcode recipientname usd_commitment_defl regioncode regionname incomegroupcode incomegroupname parentchannelcode parentchannelcode

save "Merge/China AidData.dta", replace

Preparing the Data 02: Preparing the OECD CRS Data

OECD CRS Data used in this dataset were last updated 23/01/2021. OECD CRS Data covers 1973-2019.

  1. Convert OECD CRS bulk downloads to Stata data files.
  2. Append into one OECD CRS full data file.
  3. Clean the data.

Convert OECD CRS bulk downloads to Stata data files.

clear all
set more off
* Set working directory
cd "D:\Ph.D\Dissertation\Data"

* Convert CRS Bulk Downloads to Stata data files
* CRS bulk data available here:
* https://stats.oecd.org/DownloadFiles.aspx?DatasetCode=CRS1
import delimited "Datasets\CRS data\CRS 1973-94 data.txt", delimiter("|") varnames(1) 
save "Datasets\CRS data\CRS 1973-94 data.dta", replace
import delimited "Datasets\CRS data\CRS 1995-99 data.txt", delimiter("|") varnames(1) clear 
save "Datasets\CRS data\CRS 1995-99 data.dta", replace
import delimited "Datasets\CRS data\CRS 2000-01 data.txt", delimiter("|") varnames(1) clear 
save "Datasets\CRS data\CRS 2000-01 data.dta", replace
import delimited "Datasets\CRS data\CRS 2002-03 data.txt", delimiter("|") varnames(1) clear 
save "Datasets\CRS data\CRS 2002-03 data.dta", replace
import delimited "Datasets\CRS data\CRS 2004-05 data.txt", delimiter("|") varnames(1) clear 
save "Datasets\CRS data\CRS 2004-05 data.dta", replace
import delimited "Datasets\CRS data\CRS 2006 data.txt", delimiter("|") varnames(1) clear 
save "Datasets\CRS data\CRS 2006 data.dta", replace
import delimited "Datasets\CRS data\CRS 2007 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2007 data.dta", replace
import delimited "Datasets\CRS data\CRS 2008 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2008 data.dta", replace
import delimited "Datasets\CRS data\CRS 2009 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2009 data.dta", replace
import delimited "Datasets\CRS data\CRS 2010 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2010 data.dta", replace
import delimited "Datasets\CRS data\CRS 2011 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2011 data.dta", replace
import delimited "Datasets\CRS data\CRS 2012 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2012 data.dta", replace
import delimited "Datasets\CRS data\CRS 2013 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2013 data.dta", replace
import delimited "Datasets\CRS data\CRS 2014 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2014 data.dta", replace
import delimited "Datasets\CRS data\CRS 2015 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2015 data.dta", replace
import delimited "Datasets\CRS data\CRS 2016 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2016 data.dta", replace
import delimited "Datasets\CRS data\CRS 2017 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2017 data.dta", replace
import delimited "Datasets\CRS data\CRS 2018 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2018 data.dta", replace
import delimited "Datasets\CRS data\CRS 2019 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2019 data.dta", replace
import delimited "Datasets\CRS data\CRS 2020 data.txt", delimiter("|") varnames(1) clear
save "Datasets\CRS data\CRS 2020 data.dta", replace





Append into one OECD CRS full data file.

* Append CRS Data -2019
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2019 data.dta"
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2018 data.dta"
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2017 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2016 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2015 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2014 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2013 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2012 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2011 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2010 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2009 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2008 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2007 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2006 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2004-05 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2002-03 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 2000-01 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 1995-99 data.dta", force
save "Merge\CRS Full.dta", replace
append using "Datasets\CRS data\CRS 1973-94 data.dta", force
save "Merge\CRS Full.dta", replace

Clean the data.

use "Merge\CRS Full.dta", clear
keep year donorcode donorname recipientcode recipientname regioncode regionname incomegroupcode incomegroupname purposecode purposename sectorcode sectorname parentchannelcode usd_commitment_defl usd_disbursement_defl sectorcode sectorname parentchannelcode
drop if donorcode==.
destring, replace
save "Merge\CRS 1973-2020.dta", replace

set more off

* Check purpose, sector, channel codes.
* Complete descriptions of OECD DAC/CRS codes: 
* http://www.oecd.org/dac/financing-sustainable-development/development-finance-standards/dacandcrscodelists.htm
tab year
* drop empty rows
drop if donorcode==.

tab purposecode
tab sectorcode

tab parentchannelcode

* Fix a bunch of Parent Channels that are coded as lower level channels.
recode parentchannelcode 12001=12000
recode parentchannelcode 21502=21000
recode parentchannelcode 21505=21000
recode parentchannelcode 22501=22000
recode parentchannelcode 22502=22000
recode parentchannelcode 23501=23000
recode parentchannelcode 41146=41100
recode parentchannelcode 41313=41300
recode parentchannelcode 41315=41300
recode parentchannelcode 41317=41300
recode parentchannelcode 44007=44000
recode parentchannelcode 46015=46000
recode parentchannelcode 46024=46000
recode parentchannelcode 47102=47000
recode parentchannelcode 47132=47000
recode parentchannelcode 47134=47000
recode parentchannelcode 47135=47000
recode parentchannelcode 47138=47000
recode parentchannelcode 51001=51000
recode parentchannelcode 61003=61000
recode parentchannelcode 61004=61000
recode parentchannelcode 61007=61000
recode parentchannelcode 61008=61000
recode parentchannelcode 61009=61000
recode parentchannelcode 62001=62000
recode parentchannelcode 62002=62000
recode parentchannelcode 62009=62000
recode parentchannelcode 63002=62000
recode parentchannelcode 63009=62000
recode parentchannelcode 63009=62000

* Collapse all UN to one parent channel
recode parentchannelcode 41100=41000
recode parentchannelcode 41114=41000
recode parentchannelcode 41116=41000
recode parentchannelcode 41300=41000
recode parentchannelcode 44001=41000
recode parentchannelcode 41400=41000
recode parentchannelcode 41500=41000
recode parentchannelcode 41600=41000

* Check to make sure no specific channels miscoded under "Parent Channel"
tab parentchannelcode

save "Merge\CRS 1973-2020.dta", replace

Preparing the Data 03: Appending the OECD CRS with China Aid Data, and setting up dyads

* Created using Stata MP/14.1 
clear all
set more off
* Set working directory
cd "D:\Ph.D\Dissertation\Data"

use "Merge\CRS 2000-2019.dta", clear

* Append using China AidData
append using "Merge\China AidData.dta", force
save "Datasets\Dyads\China-CRS 2000-2019.dta", replace

Generate dyad ids and add observations for all dyad-year combinations

* Generate Dyad IDs
gen dyad_id = 10000*donorcode + recipientcode
label variable dyad_id "Donor -> Recipient Dyad Identifier"

save "Datasets\Dyads\China-CRS 2000-2019.dta", replace

* Add observations for all dyad-years 

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2000
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2000 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2001
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2001 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2002
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2002 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2003
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2003 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2004
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2004 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2005
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2005 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2006
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2006 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2007
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2007 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2008
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2008 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2009
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2009 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2010
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2010 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2011
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2011 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2012
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2012 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2013
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2013 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2014
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2014 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2015
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2015 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2016
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2016 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2017
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2017 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2018
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2018 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2019
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2019 Recip.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2020
bysort recipientcode : gen seq=_n
keep if seq==1
keep recipientcode recipientname recipientcow year
gen country=recipientcode 
save "Datasets\Dyads\2020 Recip.dta", replace

Set up donors

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2000
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2000 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2001
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2001 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2002
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2002 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2003
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2003 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2004
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2004 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2005
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2005 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2006
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2006 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2007
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2007 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2008
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2008 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2009
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2009 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2010
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2010 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2011
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2011 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2012
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2012 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2013
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2013 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2014
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2014 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2015
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2015 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2016
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2016 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2017
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2017 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2018
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2018 Donor.dta", replace

use "Datasets\Dyads\China-CRS 2000-2019.dta", clear
set more off
keep if year==2019
bysort donorcode : gen seq=_n
keep if seq==1
keep donorcode donorname year
gen country=donorcode +10000
save "Datasets\Dyads\2019 Donor.dta", replace

Create dyads by appending donors and recipients for each year

use "Datasets\Dyads\2000 Recip.dta", clear
append using "Datasets\Dyads\2000 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2000 Dyads.dta", replace

use "Datasets\Dyads\2001 Recip.dta", clear
append using "Datasets\Dyads\2001 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2001 Dyads.dta", replace

use "Datasets\Dyads\2002 Recip.dta", clear
append using "Datasets\Dyads\2002 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2002 Dyads.dta", replace

use "Datasets\Dyads\2003 Recip.dta", clear
append using "Datasets\Dyads\2003 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2003 Dyads.dta", replace

use "Datasets\Dyads\2004 Recip.dta", clear
append using "Datasets\Dyads\2004 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2004 Dyads.dta", replace

use "Datasets\Dyads\2005 Recip.dta", clear
append using "Datasets\Dyads\2005 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2005 Dyads.dta", replace

use "Datasets\Dyads\2006 Recip.dta", clear
append using "Datasets\Dyads\2006 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2006 Dyads.dta", replace

use "Datasets\Dyads\2007 Recip.dta", clear
append using "Datasets\Dyads\2007 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2007 Dyads.dta", replace

use "Datasets\Dyads\2008 Recip.dta", clear
append using "Datasets\Dyads\2008 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2008 Dyads.dta", replace

use "Datasets\Dyads\2009 Recip.dta", clear
append using "Datasets\Dyads\2009 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2009 Dyads.dta", replace

use "Datasets\Dyads\2010 Recip.dta", clear
append using "Datasets\Dyads\2010 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2010 Dyads.dta", replace

use "Datasets\Dyads\2011 Recip.dta", clear
append using "Datasets\Dyads\2011 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2011 Dyads.dta", replace

use "Datasets\Dyads\2012 Recip.dta", clear
append using "Datasets\Dyads\2012 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2012 Dyads.dta", replace

use "Datasets\Dyads\2013 Recip.dta", clear
append using "Datasets\Dyads\2013 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2013 Dyads.dta", replace

use "Datasets\Dyads\2014 Recip.dta", clear
append using "Datasets\Dyads\2014 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2014 Dyads.dta", replace

use "Datasets\Dyads\2015 Recip.dta", clear
append using "Datasets\Dyads\2015 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2015 Dyads.dta", replace

use "Datasets\Dyads\2016 Recip.dta", clear
append using "Datasets\Dyads\2016 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2016 Dyads.dta", replace

use "Datasets\Dyads\2017 Recip.dta", clear
append using "Datasets\Dyads\2017 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2017 Dyads.dta", replace

use "Datasets\Dyads\2018 Recip.dta", clear
append using "Datasets\Dyads\2018 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2018 Dyads.dta", replace

use "Datasets\Dyads\2019 Recip.dta", clear
append using "Datasets\Dyads\2019 Donor.dta"
dyads country
drop recipientcode recipientname recipientcow donorcode donorname 
rename country_d donorcode
rename country recipientcode
keep if donorcode>10000
keep if recipientcode < 10000
replace donorcode=donorcode-10000
save "Datasets\Dyads\2019 Dyads.dta", replace

use "Datasets\Dyads\2000 Dyads.dta", clear
append using "Datasets\Dyads\2001 Dyads.dta"
append using "Datasets\Dyads\2002 Dyads.dta"
append using "Datasets\Dyads\2003 Dyads.dta"
append using "Datasets\Dyads\2004 Dyads.dta"
append using "Datasets\Dyads\2005 Dyads.dta"
append using "Datasets\Dyads\2006 Dyads.dta"
append using "Datasets\Dyads\2007 Dyads.dta"
append using "Datasets\Dyads\2008 Dyads.dta"
append using "Datasets\Dyads\2009 Dyads.dta"
append using "Datasets\Dyads\2010 Dyads.dta"
append using "Datasets\Dyads\2011 Dyads.dta"
append using "Datasets\Dyads\2012 Dyads.dta"
append using "Datasets\Dyads\2013 Dyads.dta"
append using "Datasets\Dyads\2014 Dyads.dta"
append using "Datasets\Dyads\2015 Dyads.dta"
append using "Datasets\Dyads\2016 Dyads.dta"
append using "Datasets\Dyads\2017 Dyads.dta"
append using "Datasets\Dyads\2018 Dyads.dta"
append using "Datasets\Dyads\2019 Dyads.dta"

Generate dyad ids

gen dyad_id = 10000*donorcode + recipientcode
label variable dyad_id "Donor -> Recipient Dyad Identifier"

tostring recipientcode, generate(recipientcode2)
tostring donorcode, generate(donorcode2)
gen dyad_id_2 = donorcode2 + "r" + recipientcode2

tsset dyad_id year
tsfill, full

drop recipientcode2 donorcode2

bysort dyad_id: carryforward dyad_id_2, gen(dyad_id_3)

gsort dyad_id - year
bysort dyad_id: carryforward dyad_id_3, gen(dyad_id_4)

drop dyad_id_2 dyad_id_3

xtset dyad_id year

split dyad_id_4, parse(r) gen(code)

destring code1, replace
destring code2, replace

label variable code2 "Recipient Country Code"
rename code2 recipientcode2
rename code1 donorcode2
label variable donorcode2 "Donor Country Code"
drop recipientcode donorcode
rename donorcode2 donorcode
rename recipientcode2 recipientcode
rename dyad_id_4 dyad_id_str
label variable dyad_id_str "Dyad ID (String Variable)"

save "Merge\2000-2019 Dyads.dta", replace

04: Preparing the data: Characterizing and analyzing donors' strategies

I differentiate between two donor strategies, which I call coercive and catalytic.

  • In coercive strategy, donors attempt to use the types of aid that provide benefits to leaders and elites as material leverage over the policy decisions of the leaders. Donors use this aid to reward compliance with human rights norms and cuts to this aid to punish acts of violence.
  • In catalytic strategy, donors attempt to use aid to change the domestic political environment for human rights in the recipient country. This involves donors using aid to promote democracy, free and fair elections, peaceful transition of power, improved civil-military relations, reconciliation between government forces and former rebels in post-conflict scenarios, and police reforms.

I use the project designations and commitment levels that the donors have reported to the OECD to conduct the analysis. I aggregate individual project data into donor-recipient-year unit of measure, and generate two variables: economic aid, which includes all projects that are relevant to coercive strategy, and governance aid, which includes all projects that are relevant to catalytic strategy.

Economic Sector Aid (Coercive strategy-relevant sectors )

transportation
storage
communications
energy
banking
financial
business
industry
mining
construction
trade
tourism
import support
action relating to debt
general budget support

Governance Sector Aid (Catalytic strategy-relevant sectors )

governance
civil society
conflict, peace, and security *
human rights
democratic participation
legal and judicial development

* Created using Stata MP/14.1
clear all
set more off
* Set working directory
cd "D:\Ph.D\Dissertation\Data"

use "Merge\2000-2019 Dyads.dta", clear

merge 1:m recipientcode donorcode year using "Merge\CRS 2000-2019.dta"
replace usd_commitment_defl=0 if _merge==1
drop _merge

* Aid is in 2018 USD Millions - change to USD
replace usd_commitment_defl = usd_commitment_defl*1000000
replace usd_disbursement_defl = usd_disbursement_defl*1000000

* Classify projects by donor type
gen dac_donor = 0
gen nondac_donor = 0
gen multilateral_donor = 0
gen private_donor = 0

label variable dac_donor "Donor is OECD DAC"
label variable nondac_donor "Donor is Non-OECD DAC"
label variable multilateral_donor "Donor is multilateral org"
label variable private_donor "Donor is private org"

replace dac_donor=1 if donorcode==1
replace dac_donor=1 if donorcode==2
replace dac_donor=1 if donorcode==3
replace dac_donor=1 if donorcode==4
replace dac_donor=1 if donorcode==5
replace dac_donor=1 if donorcode==6
replace dac_donor=1 if donorcode==7
replace dac_donor=1 if donorcode==8
replace dac_donor=1 if donorcode==9
replace dac_donor=1 if donorcode==10
replace dac_donor=1 if donorcode==11
replace dac_donor=1 if donorcode==12
replace dac_donor=1 if donorcode==18
replace dac_donor=1 if donorcode==20
replace dac_donor=1 if donorcode==21
replace dac_donor=1 if donorcode==22
replace dac_donor=1 if donorcode==40
replace dac_donor=1 if donorcode==50
replace dac_donor=1 if donorcode==61
replace dac_donor=1 if donorcode==68
replace dac_donor=1 if donorcode==69
replace dac_donor=1 if donorcode==75
replace dac_donor=1 if donorcode==76
replace dac_donor=1 if donorcode==301
replace dac_donor=1 if donorcode==302
replace dac_donor=1 if donorcode==701
replace dac_donor=1 if donorcode==742
replace dac_donor=1 if donorcode==801
replace dac_donor=1 if donorcode==820

replace nondac_donor=1 if donorcode==30
replace nondac_donor=1 if donorcode==45
replace nondac_donor=1 if donorcode==55
replace nondac_donor=1 if donorcode==62
replace nondac_donor=1 if donorcode==70
replace nondac_donor=1 if donorcode==72
replace nondac_donor=1 if donorcode==77
replace nondac_donor=1 if donorcode==82
replace nondac_donor=1 if donorcode==83
replace nondac_donor=1 if donorcode==84
replace nondac_donor=1 if donorcode==87
replace nondac_donor=1 if donorcode==130
replace nondac_donor=1 if donorcode==133
replace nondac_donor=1 if donorcode==358
replace nondac_donor=1 if donorcode==543
replace nondac_donor=1 if donorcode==546
replace nondac_donor=1 if donorcode==552
replace nondac_donor=1 if donorcode==561
replace nondac_donor=1 if donorcode==566
replace nondac_donor=1 if donorcode==576
replace nondac_donor=1 if donorcode==611
replace nondac_donor=1 if donorcode==613
replace nondac_donor=1 if donorcode==730
replace nondac_donor=1 if donorcode==732
replace nondac_donor=1 if donorcode==764
replace nondac_donor=1 if donorcode==765

replace multilateral_donor=1 if donorcode==104
replace multilateral_donor=1 if donorcode==807
replace multilateral_donor=1 if donorcode==811
replace multilateral_donor=1 if donorcode==812
replace multilateral_donor=1 if donorcode==901
replace multilateral_donor=1 if donorcode==902
replace multilateral_donor=1 if donorcode==903
replace multilateral_donor=1 if donorcode==905
replace multilateral_donor=1 if donorcode==906
replace multilateral_donor=1 if donorcode==907
replace multilateral_donor=1 if donorcode==909
replace multilateral_donor=1 if donorcode==913
replace multilateral_donor=1 if donorcode==914
replace multilateral_donor=1 if donorcode==915
replace multilateral_donor=1 if donorcode==921
replace multilateral_donor=1 if donorcode==923
replace multilateral_donor=1 if donorcode==926
replace multilateral_donor=1 if donorcode==928
replace multilateral_donor=1 if donorcode==932
replace multilateral_donor=1 if donorcode==940
replace multilateral_donor=1 if donorcode==944
replace multilateral_donor=1 if donorcode==948
replace multilateral_donor=1 if donorcode==951
replace multilateral_donor=1 if donorcode==952
replace multilateral_donor=1 if donorcode==953
replace multilateral_donor=1 if donorcode==954
replace multilateral_donor=1 if donorcode==956
replace multilateral_donor=1 if donorcode==958
replace multilateral_donor=1 if donorcode==959
replace multilateral_donor=1 if donorcode==960
replace multilateral_donor=1 if donorcode==963
replace multilateral_donor=1 if donorcode==964
replace multilateral_donor=1 if donorcode==966
replace multilateral_donor=1 if donorcode==967
replace multilateral_donor=1 if donorcode==971
replace multilateral_donor=1 if donorcode==974
replace multilateral_donor=1 if donorcode==976
replace multilateral_donor=1 if donorcode==978
replace multilateral_donor=1 if donorcode==979
replace multilateral_donor=1 if donorcode==980
replace multilateral_donor=1 if donorcode==981
replace multilateral_donor=1 if donorcode==982
replace multilateral_donor=1 if donorcode==983
replace multilateral_donor=1 if donorcode==988
replace multilateral_donor=1 if donorcode==990
replace multilateral_donor=1 if donorcode==992
replace multilateral_donor=1 if donorcode==997
replace multilateral_donor=1 if donorcode==1011
replace multilateral_donor=1 if donorcode==1012
replace multilateral_donor=1 if donorcode==1013
replace multilateral_donor=1 if donorcode==1014
replace multilateral_donor=1 if donorcode==1015
replace multilateral_donor=1 if donorcode==1016
replace multilateral_donor=1 if donorcode==1017
replace multilateral_donor=1 if donorcode==1018
replace multilateral_donor=1 if donorcode==1019
replace multilateral_donor=1 if donorcode==1020
replace multilateral_donor=1 if donorcode==1023
replace multilateral_donor=1 if donorcode==1024
replace multilateral_donor=1 if donorcode==1025
replace multilateral_donor=1 if donorcode==1037
replace multilateral_donor=1 if donorcode==1038
replace multilateral_donor=1 if donorcode==1311
replace multilateral_donor=1 if donorcode==1312
replace multilateral_donor=1 if donorcode==1313

replace private_donor=1 if donorcode==1601
replace private_donor=1 if donorcode==1602
replace private_donor=1 if donorcode==1603
replace private_donor=1 if donorcode==1604
replace private_donor=1 if donorcode==1605
replace private_donor=1 if donorcode==1606
replace private_donor=1 if donorcode==1607
replace private_donor=1 if donorcode==1608
replace private_donor=1 if donorcode==1609
replace private_donor=1 if donorcode==1610
replace private_donor=1 if donorcode==1611
replace private_donor=1 if donorcode==1612
replace private_donor=1 if donorcode==1613
replace private_donor=1 if donorcode==1614
replace private_donor=1 if donorcode==1615
replace private_donor=1 if donorcode==1616
replace private_donor=1 if donorcode==1617
replace private_donor=1 if donorcode==1618
replace private_donor=1 if donorcode==1619
replace private_donor=1 if donorcode==1620
replace private_donor=1 if donorcode==1621
replace private_donor=1 if donorcode==1622
replace private_donor=1 if donorcode==1623
replace private_donor=1 if donorcode==1624
replace private_donor=1 if donorcode==1625
replace private_donor=1 if donorcode==1626
replace private_donor=1 if donorcode==1627
replace private_donor=1 if donorcode==1628
replace private_donor=1 if donorcode==1629
replace private_donor=1 if donorcode==1630
replace private_donor=1 if donorcode==1631
replace private_donor=1 if donorcode==1632
replace private_donor=1 if donorcode==1633
replace private_donor=1 if donorcode==1634
replace private_donor=1 if donorcode==1635
replace private_donor=1 if donorcode==1636
replace private_donor=1 if donorcode==1637
replace private_donor=1 if donorcode==1638
replace private_donor=1 if donorcode==1639

* Generate dummy variables for channels and sectors
gen governance_sector = 0
label variable governance_sector "Aid to Democracy, Human Rights, Judicial, and Governance Sectors"
gen economic_sector = 0
label variable economic_sector "Aid to Economic, Transportation, and Infrastructure Sectors"

gen aid_bypass = 0
label variable aid_bypass "Aid through Less Fungible Channels"
gen aid_fungible = 0
label variable aid_fungible "Aid through Highly Fungible Channels"
gen economic_sector_sm=0
label variable economic_sector_sm "Narrow Aid to Economic Sectors"


* Narrow set
replace economic_sector_sm=1 if sectorcode==510
replace economic_sector_sm=1 if sectorcode==530
replace economic_sector_sm=1 if sectorcode==600

* Narrow set
replace governance_sector=1 if sectorcode==150
replace governance_sector=1 if sectorcode==151
replace governance_sector=1 if sectorcode==152

* Extended set
replace economic_sector=1 if sectorcode==510
replace economic_sector=1 if sectorcode==530
replace economic_sector=1 if sectorcode==600
replace economic_sector=1 if sectorcode==210
replace economic_sector=1 if sectorcode==220
replace economic_sector=1 if sectorcode==230
replace economic_sector=1 if sectorcode==231
replace economic_sector=1 if sectorcode==232
replace economic_sector=1 if sectorcode==233
replace economic_sector=1 if sectorcode==234
replace economic_sector=1 if sectorcode==235
replace economic_sector=1 if sectorcode==236
replace economic_sector=1 if sectorcode==240
replace economic_sector=1 if sectorcode==250
replace economic_sector=1 if sectorcode==320
replace economic_sector=1 if sectorcode==321
replace economic_sector=1 if sectorcode==322
replace economic_sector=1 if sectorcode==323
replace economic_sector=1 if sectorcode==330
replace economic_sector=1 if sectorcode==331
replace economic_sector=1 if sectorcode==332

replace aid_bypass=1 if parentchannelcode==11000
replace aid_bypass=1 if parentchannelcode==21000
replace aid_bypass=1 if parentchannelcode==40000
replace aid_bypass=1 if parentchannelcode==41000
replace aid_bypass=1 if parentchannelcode==42000
replace aid_bypass=1 if parentchannelcode==43000
replace aid_bypass=1 if parentchannelcode==44000
replace aid_bypass=1 if parentchannelcode==45000
replace aid_bypass=1 if parentchannelcode==46000

replace aid_fungible=1 if parentchannelcode==12000
replace aid_fungible=1 if parentchannelcode==62000
replace aid_fungible=1 if sectorcode==510
replace aid_fungible=1 if sectorcode==51010

gen governance_sector_narrow = governance_sector
label variable governance_sector_narrow "Governance Aid, Excluding Conflict, Peace and Security Assistance"

replace governance_sector_narrow=0 if sectorcode==152
replace governance_sector_narrow=0 if sectorcode==15210
replace governance_sector_narrow=0 if sectorcode==15220
replace governance_sector_narrow=0 if sectorcode==15230
replace governance_sector_narrow=0 if sectorcode==15240
replace governance_sector_narrow=0 if sectorcode==15250
replace governance_sector_narrow=0 if sectorcode==15261

gen economic_sector_narrow = 0
label variable economic_sector_narrow "Economic Aid, Limited to Direct Budget Support"

replace economic_sector_narrow=0 if sectorcode==330
replace economic_sector_narrow=0 if sectorcode==331
replace economic_sector_narrow=0 if sectorcode==333
replace economic_sector_narrow=0 if sectorcode==510
replace economic_sector_narrow=0 if sectorcode==530
replace economic_sector_narrow=0 if sectorcode==600

* Trade facilitation, agreements, negotiation, adjustments, education/training
* Tourism promotion, policy, and management
* General budget support-related aid
* Commodity assistance, import subsidies, credit, oil imports
* Debt forgiveness, relief, rescheduling, refinancing, swaps, and buy-backs


gen economic_sector_bypass = 0
gen governance_sector_bypass = 0
gen governance_sector_bypass_sum = governance_sector + aid_bypass
gen economic_sector_bypass_sum = economic_sector + aid_bypass
replace economic_sector_bypass=1 if economic_sector_bypass_sum==2
replace governance_sector_bypass=1 if governance_sector_bypass_sum==2
drop governance_sector_bypass_sum
drop economic_sector_bypass_sum

* Sort aid into different types
gen private_commitments = usd_commitment_defl * private_donor
gen private_disbursements = usd_disbursement_defl * private_donor
gen multilateral_commitments = usd_commitment_defl * multilateral_donor
gen multilateral_disbursements = usd_disbursement_defl * multilateral_donor

gen nondac_commitments = usd_commitment_defl * nondac_donor
gen nondac_disbursements = usd_disbursement_defl * nondac_donor
gen dac_commitments = usd_commitment_defl * dac_donor
gen dac_disbursements = usd_disbursement_defl * dac_donor

gen bypass_commitment = usd_commitment_defl * aid_bypass
gen bypass_disbursement = usd_disbursement_defl * aid_bypass
gen fungible_commitments = usd_commitment_defl * aid_fungible
gen fungible_disbursements = usd_disbursement_defl * aid_fungible

gen economic_sector_commitment = usd_commitment_defl * economic_sector
gen economic_sector_disbursement = usd_disbursement_defl * economic_sector
gen economic_sector_sm_commit = usd_commitment_defl * economic_sector_sm
gen economic_sector_sm_disburs = usd_disbursement_defl * economic_sector_sm
gen governance_sector_commitment = usd_commitment_defl * governance_sector
gen governance_sector_disbursement = usd_disbursement_defl * governance_sector

gen economic_bypass_commitment = usd_commitment_defl * economic_sector_bypass
gen economic_bypass_disbursement = usd_disbursement_defl * economic_sector_bypass
gen governance_bypass_commitment = usd_commitment_defl * governance_sector_bypass
gen governance_bypass_disbursement = usd_disbursement_defl * governance_sector_bypass


gen econ_narrow_commitment = usd_commitment_defl * economic_sector_narrow
gen econ_narrow_disbursement = usd_disbursement_defl * economic_sector_narrow

gen gov_narrow_commitment = usd_commitment_defl * governance_sector_narrow
gen gov_narrow_disbursement = usd_disbursement_defl * governance_sector_narrow



* Label variables

label variable economic_sector_bypass "Economic sector project through bypass channels"
label variable governance_sector_bypass "Governance sector project through bypass channels"
label variable private_commitments "Private donor commitment"
label variable private_disbursements "Private donor disbursement"
label variable multilateral_commitments "Multilateral donor commitment"
label variable multilateral_disbursements "Multilateral donor disbursement"
label variable nondac_commitments "Non-DAC commitment "
label variable nondac_disbursements "Non-DAC disbursement"
label variable dac_commitments "DAC commitment "
label variable dac_disbursements "DAC disbursement"
label variable bypass_commitment "Bypass aid commitment "
label variable bypass_disbursement "Bypass aid disbursement"
label variable fungible_commitments "Fungible aid commitment "
label variable fungible_disbursements "Fungible aid disbursement"
label variable economic_sector_commitment "Commitment to economic sector "
label variable economic_sector_disbursement "Disbursement to economic sector"
label variable economic_sector_sm_commit "Commitment to economic sector "
label variable economic_sector_sm_disburs "Disbursement to economic sector"
label variable governance_sector_commitment "Commitment to governance sector "
label variable governance_sector_disbursement "Disbursement to governance sector"
label variable economic_bypass_commitment "Commitment to economic sector through bypass channels"
label variable economic_bypass_disbursement "Disbursement to economic sector through bypass channels"
label variable governance_bypass_commitment "Commitment to governance sector through bypass channels"
label variable governance_bypass_disbursement "Disbursement to governance sector through bypass channels"
label variable private_commitments "Private donor commitments"
label variable private_disbursements "Private donor disbursements"
label variable multilateral_commitments "Multilateral donor commitments"
label variable multilateral_disbursements "Multilateral donor disbursements"

* Create total aid
sort year
by year: egen global_commitments_sum  = total(usd_commitment_defl)
by year: gen nondac_commitments_sum = nondac_donor * global_commitments_sum
by year: gen pctnondac = nondac_commitments_sum/global_commitments_sum

label variable global_commitments_sum "Total global ODA commitments from all donors to all recipients"
label variable nondac_commitments_sum "Total ODA-like commitments from all non-DAC donors to all recipients"
label variable pctnondac "Percent of global aid provided by non-DAC donors"

* Create sums of recipient-year commitments and disbursements by type
sort recipientcode year
by recipientcode year: egen recip_commitments_sum  = total(usd_commitment_defl)
by recipientcode year: egen recip_disbursements_sum = total(usd_disbursement_defl)
by recipientcode year: egen recip_multi_commitments_sum = total(multilateral_commitments)
by recipientcode year: egen recip_multi_disbursements_sum = total(multilateral_disbursements)
by recipientcode year: egen recip_private_commitments_sum = total(private_commitments)
by recipientcode year: egen recip_private_disbursements_sum = total(private_disbursements)
by recipientcode year: egen recip_nondac_commitments_sum = total(nondac_commitments)
by recipientcode year: egen recip_nondac_disbursements_sum = total(nondac_disbursements)
by recipientcode year: egen recip_dac_commitments_sum = total(dac_commitments)
by recipientcode year: egen recip_dac_disbursements_sum = total(dac_disbursements)
by recipientcode year: egen recip_bypass_commitment_sum = total(bypass_commitment)
by recipientcode year: egen recip_bypass_disbursement_sum = total(bypass_disbursement)
by recipientcode year: egen recip_fungible_commitment_sum = total(fungible_commitments)
by recipientcode year: egen recip_fungible_disbursement_sum = total(fungible_disbursements)
by recipientcode year: egen recip_economic_commitment_sum = total(economic_sector_commitment)
by recipientcode year: egen recip_economic_disbursement_sum = total(economic_sector_disbursement)
by recipientcode year: egen recip_governance_commitments_sum = total(governance_sector_commitment)
by recipientcode year: egen recip_governance_disburs_sum = total(governance_sector_disbursement)
by recipientcode year: egen recip_econbypass_commit_sum = total(economic_bypass_commitment)
by recipientcode year: egen recip_econbypass_disburs_sum = total(economic_bypass_disbursement)
by recipientcode year: egen recip_govbypass_commit_sum = total(governance_bypass_commitment)
by recipientcode year: egen recip_govbypass_disburs_sum = total(governance_bypass_disbursement)

label variable recip_commitments_sum "Sum of commitments by recipient-year"
label variable recip_disbursements_sum "Sum of disbursements by recipient-year"
label variable recip_multi_commitments_sum "Sum of multilateral donor commitments by recipient-year"
label variable recip_multi_disbursements_sum "Sum of multilateral donor disbursements by recipient-year"
label variable recip_private_commitments_sum "Sum of private donor commitments by recipient-year"
label variable recip_private_disbursements_sum "Sum of private donor disbursements by recipient-year"
label variable recip_nondac_commitments_sum "Sum of non-DAC commitments by recipient-year "
label variable recip_nondac_disbursements_sum "Sum of non-DAC disbursements by recipient-year"
label variable recip_dac_commitments_sum "Sum of DAC commitments by recipient-year "
label variable recip_dac_disbursements_sum "Sum of DAC disbursements by recipient-year"
label variable recip_bypass_commitment_sum "Sum of bypass commitments by recipient-year "
label variable recip_bypass_disbursement_sum "Sum of bypass disbursements by recipient-year"
label variable recip_fungible_commitment_sum "Sum of fungible commitments by recipient-year "
label variable recip_fungible_disbursement_sum "Sum of fungible disbursements by recipient-year"
label variable recip_economic_commitment_sum "Sum of economic sector commitments by recipient-year "
label variable recip_economic_disbursement_sum "Sum of economic sector disbursements by recipient-year"
label variable recip_governance_commitments_sum "Sum of governance commitments by recipient-year "
label variable recip_governance_disburs_sum "Sum of governance disbursements by recipient-year"
label variable recip_econbypass_commit_sum "Sum of commitments to economic sector through bypass channels by recipient-year"
label variable recip_econbypass_disburs_sum "Sum of disbursements to economic sector through bypass channels by recipient-year"
label variable recip_govbypass_commit_sum "Sum of commitments to governance sector through bypass channels by recipient-year"
label variable recip_govbypass_disburs_sum "Sum of disbursements to governance sector through bypass channels by recipient-year"

* Create sums of donor-year commitments and disbursements by type
sort donorcode year
by donorcode year: egen donor_commitments_sum  = total(usd_commitment_defl)
by donorcode year: egen donor_disbursements_sum = total(usd_disbursement_defl)
by donorcode year: egen donor_bypass_commitments_sum  = total(bypass_commitment)
by donorcode year: egen donor_bypass_disbursements_sum = total(bypass_disbursement)
by donorcode year: egen donor_fungible_commitments_sum  = total(fungible_commitments)
by donorcode year: egen donor_fungible_disbursements_sum = total(fungible_disbursements)
by donorcode year: egen donor_economic_commitments_sum  = total(economic_sector_commitment)
by donorcode year: egen donor_economic_disbursements_sum = total(economic_sector_disbursement)
by donorcode year: egen donor_economic_commit_sm_sum  = total(economic_sector_sm_commit)
by donorcode year: egen donor_economic_disburs_sm_sum = total(economic_sector_sm_disburs)
by donorcode year: egen donor_governance_commitments_sum  = total(governance_sector_commitment)
by donorcode year: egen donor_governance_disburs_sum = total(governance_sector_disbursement)
by donorcode year: egen donor_econbypass_commit_sum = total(economic_bypass_commitment)
by donorcode year: egen donor_econbypass_disburs_sum = total(economic_bypass_disbursement)
by donorcode year: egen donor_govbypass_commit_sum = total(governance_bypass_commitment)
by donorcode year: egen donor_govbypass_disburs_sum = total(governance_bypass_disbursement)

label variable donor_commitments_sum "Sum of commitments by donor-year"
label variable donor_disbursements_sum "Sum of disbursements by donor-year"
label variable donor_bypass_commitments_sum "Sum of bypass commitments by donor-year "
label variable donor_bypass_disbursements_sum "Sum of bypass disbursements by donor-year"
label variable donor_fungible_commitments_sum "Sum of fungible commitments by donor-year "
label variable donor_fungible_disbursements_sum "Sum of fungible disbursements by donor-year"
label variable donor_economic_commitments_sum "Sum of economic sector commitments by donor-year "
label variable donor_economic_disbursements_sum "Sum of economic sector disbursements by donor-year"
label variable donor_economic_commit_sm_sum "Sum of narrow economic sector commitments by donor-year "
label variable donor_economic_disburs_sm_sum "Sum of narrow economic sector disbursements by donor-year"
label variable donor_governance_commitments_sum "Sum of governance sector commitments by donor-year "
label variable donor_governance_disburs_sum "Sum of governance sector disbursements by donor-year"
label variable donor_econbypass_commit_sum "Sum of commitments to economic sector through bypass channels by donor-year"
label variable donor_econbypass_disburs_sum  "Sum of disbursements to economic sector through bypass channels by donor-year"
label variable donor_govbypass_commit_sum "Sum of commitments to governance sector through bypass channels by donor-year"
label variable donor_govbypass_disburs_sum "Sum of disbursements to governance sector through bypass channels by donor-year"


* Create sums of dyad-year commitments and disbursements by type
sort dyad_id year
by dyad_id year: egen dyad_commitments_sum  = total(usd_commitment_defl)
by dyad_id year: egen dyad_disbursements_sum = total(usd_disbursement_defl)
by dyad_id year: egen dyad_bypass_commitments_sum  = total(bypass_commitment)
by dyad_id year: egen dyad_bypass_disbursements_sum = total(bypass_disbursement)
by dyad_id year: egen dyad_fungible_commitments_sum  = total(fungible_commitments)
by dyad_id year: egen dyad_fungible_disbursements_sum = total(fungible_disbursements)
by dyad_id year: egen dyad_economic_commitments_sum  = total(economic_sector_commitment)
by dyad_id year: egen dyad_economic_disbursements_sum = total(economic_sector_disbursement)
by dyad_id year: egen dyad_economic_commit_sm_sum  = total(economic_sector_sm_commit)
by dyad_id year: egen dyad_economic_disburs_sm_sum = total(economic_sector_sm_disburs)
by dyad_id year: egen dyad_governance_commitments_sum  = total(governance_sector_commitment)
by dyad_id year: egen dyad_governance_disburs_sum = total(governance_sector_disbursement)
by dyad_id year: egen dyad_econbypass_commit_sum = total(economic_bypass_commitment)
by dyad_id year: egen dyad_econbypass_disburs_sum = total(economic_bypass_disbursement)
by dyad_id year: egen dyad_govbypass_commit_sum = total(governance_bypass_commitment)
by dyad_id year: egen dyad_govbypass_disburs_sum = total(governance_bypass_disbursement)

label variable dyad_commitments_sum "Sum of commitments by dyad-year"
label variable dyad_disbursements_sum "Sum of disbursements by dyad-year"
label variable dyad_bypass_commitments_sum "Sum of bypass commitments by dyad-year "
label variable dyad_bypass_disbursements_sum "Sum of bypass disbursements by dyad-year"
label variable dyad_fungible_commitments_sum "Sum of fungible commitments by dyad-year "
label variable dyad_fungible_disbursements_sum "Sum of fungible disbursements by dyad-year"
label variable dyad_economic_commitments_sum "Sum of economic sector commitments by dyad-year "
label variable dyad_economic_disbursements_sum "Sum of economic sector disbursements by dyad-year"
label variable dyad_economic_commit_sm_sum "Sum of narrow economic sector commitments by dyad-year "
label variable dyad_economic_disburs_sm_sum "Sum of narrow economic sector disbursements by dyad-year"
label variable dyad_governance_commitments_sum "Sum of governance sector commitments by dyad-year "
label variable dyad_governance_disburs_sum "Sum of governance sector disbursements by dyad-year"
label variable dyad_econbypass_commit_sum "Sum of commitments to economic sector through bypass channels by dyad-year"
label variable dyad_econbypass_disburs_sum "Sum of disbursements to economic sector through bypass channels by dyad-year"
label variable dyad_govbypass_commit_sum "Sum of commitments to governance sector through bypass channels by dyad-year"
label variable dyad_govbypass_disburs_sum "Sum of disbursements to governance sector through bypass channels by dyad-year"

by dyad_id year: egen dyad_econ_narrow_commit_sum = total(econ_narrow_commitment)
by dyad_id year: egen dyad_econ_narrow_disb_sum = total(econ_narrow_disbursement)
by dyad_id year: egen dyad_gov_narrow_commit_sum = total(gov_narrow_commitment)
by dyad_id year: egen dyad_gov_narrow_disb_sum = total(gov_narrow_disbursement)

gen lnpctdonoraid = ln((100*dyad_commitments_sum)/(donor_commitments_sum))
gen lnpctdonorgovaid = ln((100*dyad_governance_commitments_sum)/(donor_governance_commitments_sum))
gen lnpctdonoreconaid = ln((100*dyad_economic_commitments_sum)/(donor_economic_commitments_sum))

gen pct_dyad_gov_aid = ((100*dyad_governance_commitments_sum)/(dyad_commitments_sum))
gen pct_dyad_econ_aid = ((100*dyad_economic_commitments_sum)/(dyad_commitments_sum))
gen pct_dyad_bypass_aid = ((100*dyad_bypass_commitments_sum)/(dyad_commitments_sum))
gen pct_dyad_fungible_aid = ((100*dyad_fungible_commitments_sum)/(dyad_commitments_sum))



* Group donors into "types" by their regions
gen donortype=" "
replace donortype="Nordic" if donorname=="Sweden"
replace donortype="Nordic" if donorname=="Norway"
replace donortype="Nordic" if donorname=="Denmark"
replace donortype="Nordic" if donorname=="Finland"
replace donortype="Nordic" if donorname=="Iceland"
replace donortype="Oceanic" if donorname=="New Zealand"
replace donortype="Oceanic" if donorname=="Australia"
replace donortype="European" if donorname=="Austria"
replace donortype="European" if donorname=="Belgium"
replace donortype="European" if donorname=="Czech Republic"
replace donortype="European" if donorname=="France"
replace donortype="European" if donorname=="Germany"
replace donortype="European" if donorname=="Greece"
replace donortype="European" if donorname=="Hungary"
replace donortype="European" if donorname=="Ireland"
replace donortype="European" if donorname=="Italy"
replace donortype="European" if donorname=="Luxembourg"
replace donortype="European" if donorname=="Netherlands"
replace donortype="European" if donorname=="Poland"
replace donortype="European" if donorname=="Portugal"
replace donortype="European" if donorname=="Slovak Republic"
replace donortype="European" if donorname=="Slovenia"
replace donortype="European" if donorname=="Spain"
replace donortype="European" if donorname=="Switzerland"
replace donortype="European" if donorname=="EU Institutions"
replace donortype="American" if donorname=="United States"
replace donortype="American" if donorname=="Canada"
replace donortype="Asian" if donorname=="Japan"
replace donortype="Asian" if donorname=="Korea"
replace donortype="Asian" if donorname=="Chinese Taipei"
replace donortype="Asian" if donorname=="China"
replace donortype="Russia" if donorname=="Russia"
replace donortype="Middle Eastern" if donorname=="Saudi Arabia"
replace donortype="Middle Eastern" if donorname=="United Arab Emirates"

label variable donortype "Donor's region"

save "Merge\20220408 Donor and Aid Type.dta", replace

05: Merging control variables

* Created using Stata MP/14.1 
clear all
set more off
* Set working directory
cd "D:\Ph.D\Dissertation\Data"

use "Merge\Dyad Year.dta", clear

* Merge in WGI data
merge m:1 recipientcow year using "Datasets\WGI Data\wgidataset_merge.dta"
drop if year<2000
drop if _merge==2
drop _merge
save "Merge\Dyad Year with controls.dta", replace

* Merge in Fariss Human Rights Dynamic Latent Scores
clear
import delimited "Datasets\Human Rights Protection Scores\HumanRightsProtectionScores_v4.01.csv"
rename theta_mean humanrights
rename theta_sd humanrights_sd
rename cow recipientcow
keep year recipientcow humanrights humanrights_sd
label variable humanrights "Recipient Human Rights Score (Fariss dynamic latent)"
save "Datasets\Human Rights Protection Scores\HumanRightsProtectionScores_v401.dta", replace

use "Merge\Dyad Year with controls.dta", clear
merge m:1 recipientcow year using "Datasets\Human Rights Protection Scores\HumanRightsProtectionScores_v401.dta"
drop if _merge==2
drop _merge
save "Merge\Dyad Year with controls.dta", replace

clear
use "Datasets\Human Rights Protection Scores\HumanRightsProtectionScores_v401.dta", clear
rename humanrights donorrights
rename humanrights_sd donorrights_sd
rename recipientcow donorcow
keep year donorcow donorrights donorrights_sd
label variable donorrights "Donor Human Rights Score (Fariss dynamic latent)"
save "Datasets\Human Rights Protection Scores\Donor HumanRightsProtectionScores_v401.dta", replace

use "Merge\Dyad Year with controls.dta", clear
merge m:1 donorcow year using "Datasets\Human Rights Protection Scores\Donor HumanRightsProtectionScores_v401.dta"
drop if _merge==2
drop _merge
save "Merge\Dyad Year with controls.dta", replace

clear
import delimited "Datasets\World Bank Data\af442ad2-8e69-426c-85a4-4d2008cc80b9_Data.csv"
kountry countrycode, from(iso3c) to(cown)
rename _COWN_ recipientcow
rename ïcountryname recipientname

replace recipientcow=  9909 if recipientname==	"Turks and Caicos Islands"
replace recipientcow=  667  if recipientname==	"West Bank and Gaza"
replace recipientcow=  626  if recipientname==	"South Sudan"
replace recipientcow=  347  if recipientname==	"Kosovo"
replace recipientcow=  341  if recipientname== "Montenegro"
replace recipientcow=  530  if recipientname== "Ethiopia"

drop if time==.
drop if recipientcow==.
rename time year
rename countrycode recipientiso3
drop recipientname timecode
save "Datasets\World Bank Data\worldbankcontrols.dta", replace

use "Merge\Dyad Year with controls.dta", clear
merge m:1 recipientcow year using "Datasets\World Bank Data\worldbankcontrols.dta"
drop if year<2000
drop if _merge==2
drop _merge

replace taxrevenueofgdpgctaxtotlgdzs="." if  taxrevenueofgdpgctaxtotlgdzs ==".."
replace gdppercapitaconstant2010usnygdpp="." if  gdppercapitaconstant2010usnygdpp ==".."
replace gdppercapitapppconstant2017inter="." if  gdppercapitapppconstant2017inter ==".."
replace gdpconstant2010usnygdpmktpkd="." if  gdpconstant2010usnygdpmktpkd ==".."
replace idaresourceallocationindex1lowto="." if  idaresourceallocationindex1lowto ==".."
replace totalnaturalresourcesrentsofgdpn="." if  totalnaturalresourcesrentsofgdpn ==".."
replace populationtotalsppoptotl="." if  populationtotalsppoptotl ==".."
replace populationages65andabovetotalspp="." if  populationages65andabovetotalspp ==".."
replace populationages1564totalsppop1564="." if  populationages1564totalsppop1564 ==".."
replace populationages014totalsppop0014t="." if  populationages014totalsppop0014t ==".."
replace mortalityrateunder5per1000livebi="." if  mortalityrateunder5per1000livebi ==".."
replace militaryexpenditureofgdpmsmilxpn="." if  militaryexpenditureofgdpmsmilxpn ==".."
replace militaryexpenditureofgeneralgove="." if  militaryexpenditureofgeneralgove ==".."
replace armedforcespersonneloftotallabor="." if  armedforcespersonneloftotallabor ==".."
replace armedforcespersonneltotalmsmilto="." if  armedforcespersonneltotalmsmilto ==".."
replace battlerelateddeathsnumberofpeopl="." if  battlerelateddeathsnumberofpeopl ==".."
replace armsimportssipritrendindicatorva="." if  armsimportssipritrendindicatorva ==".."

replace taxrevenueofgdpgctaxtotlgdzs="." if  taxrevenueofgdpgctaxtotlgdzs ==""
replace gdppercapitaconstant2010usnygdpp="." if  gdppercapitaconstant2010usnygdpp ==""
replace gdppercapitapppconstant2017inter="." if  gdppercapitapppconstant2017inter ==""
replace gdpconstant2010usnygdpmktpkd="." if  gdpconstant2010usnygdpmktpkd ==""
replace idaresourceallocationindex1lowto="." if  idaresourceallocationindex1lowto ==""
replace totalnaturalresourcesrentsofgdpn="." if  totalnaturalresourcesrentsofgdpn ==""
replace populationtotalsppoptotl="." if  populationtotalsppoptotl ==""
replace populationages65andabovetotalspp="." if  populationages65andabovetotalspp ==""
replace populationages1564totalsppop1564="." if  populationages1564totalsppop1564 ==""
replace populationages014totalsppop0014t="." if  populationages014totalsppop0014t ==""
replace mortalityrateunder5per1000livebi="." if  mortalityrateunder5per1000livebi ==""
replace militaryexpenditureofgdpmsmilxpn="." if  militaryexpenditureofgdpmsmilxpn ==""
replace militaryexpenditureofgeneralgove="." if  militaryexpenditureofgeneralgove ==""
replace armedforcespersonneloftotallabor="." if  armedforcespersonneloftotallabor ==""
replace armedforcespersonneltotalmsmilto="." if  armedforcespersonneltotalmsmilto ==""
replace battlerelateddeathsnumberofpeopl="." if  battlerelateddeathsnumberofpeopl ==""
replace armsimportssipritrendindicatorva="." if  armsimportssipritrendindicatorva ==""

destring , replace

save "Merge\Dyad Year with controls.dta", replace

* Generate HHI variables

replace dyad_commitments_sum=0 if dyad_commitments_sum<0

hhi5 dyad_commitments_sum, by(regioncode year)
rename hhi_dyad_commitments_sum hhi_region
hhi5 dyad_commitments_sum, by(recipientcode year)
rename hhi_dyad_commitments_sum hhi_recipient

label variable hhi_recipient "HHI for recipient-year"
label variable hhi_region "HHI for region-year"

save "Merge\Dyad Year with controls.dta", replace

* Import IMF DOTS, colony, UN Ideal Point, and regime type data

clear
import delimited "Datasets\IMF DOTS Data\DOT_04-15-2021 23-22-04-83_panel.csv"
kountry countrycode, from(imfn) to(cown)
rename _COWN_ donorcow
kountry counterpartcountrycode, from(imfn) to(cown)
rename _COWN_ recipientcow
rename timeperiod year
rename ïcountryname donorname
rename counterpartcountryname recipientname

replace recipientcow=  9909 if recipientname==	"Turks and Caicos Islands"
replace recipientcow=  667  if recipientname==	"West Bank and Gaza"
replace recipientcow=  626  if recipientname==	"South Sudan, Rep. of"
replace recipientcow=  341  if recipientname== "Montenegro"
replace recipientcow=  530  if recipientname== "Ethiopia"
replace recipientcow=  9901 if recipientname==	"Anguilla"
replace recipientcow=  9905 if recipientname==	"Montserrat"
replace recipientcow=  731 if recipientname==	"Korea, Dem. People's Rep. of"
replace recipientcow=  347 if recipientname==	"Kosovo, Rep. of"
replace recipientcow=  345 if recipientname==	"Serbia, Rep. of"
replace recipientcow=  947 if recipientname==	"Tuvalu"
replace donorcow= 1000 if donorname== "European Union"

drop if donorcow==345
drop if recipientname==   "Serbia and Montenegro"
drop if year==.
drop if recipientcow==.
drop if donorcow==.
rename countrycode imfdonorcode
rename counterpartcountrycode imfrecipientcode
replace goodsvalueofimportsfreeonboardfo = 0 if goodsvalueofimportsfreeonboardfo ==.
replace goodsvalueofexportsfreeonboardfo = 0 if goodsvalueofexportsfreeonboardfo ==.
gen trade=(goodsvalueofexportsfreeonboardfo+goodsvalueofimportsfreeonboardfo)
gen lntrade=ln(1+(goodsvalueofexportsfreeonboardfo+goodsvalueofimportsfreeonboardfo))
gen lnexports=ln(1+goodsvalueofexportsfreeonboardfo)
label variable lnexports "Natural log of 1+annual exports from donor to recipient in constant 2018 usd"
label variable lntrade "Natural log of 1+annual total trade between donor and recipient in constant 2018 usd"
keep year recipientcow donorcow lnexports lntrade

isid year donorcow recipientcow

save "Datasets\IMF DOTS Data\DOTS.dta", replace

use "Merge\Dyad Year with controls.dta", clear
merge m:1 recipientcow donorcow using "Datasets\Colony Data.dta"
drop if _merge==2
drop _merge
merge m:1 recipientcow donorcow year using "Datasets\IMF DOTS Data\DOTS.dta"
drop if _merge==2
drop _merge
merge m:1 recipientcow donorcow year using "Datasets\UN Ideal Point Difference\IdealPtDifferenceMerge.dta"
drop if _merge==2
drop _merge
merge m:1 recipientcow year using "Datasets\VDEM Data\Country_Year_V-Dem_Full+others_STATA_v11.1\VDem Merge.dta"
drop if _merge==2
drop _merge
merge m:1 donorcow recipientcow using "Datasets\CapDist.dta"
drop if _merge==2
drop _merge 
merge m:1 recipientcow year using "Datasets\ICEWS Data\Event Count Aggregations Yearly.dta"
drop if year<2000
drop if _merge==2
drop _merge
drop count*
drop provideaid violentrepression
centile terror, centile(75)
gen highterror=0
replace highterror=1 if terror>=2
centile dissent, centile(75)
gen highdissent=0
replace highdissent=1 if dissent>=90
drop dissent terror
label variable highterror "1 if in top quartile of terrorism event count"
label variable highdissent "1 if in top quartile of protest and riot event count"
save "Merge\Dyad Year with controls.dta", replace

* LATER...
* What to do with missing in VDEM? Currently just using sum and treating missing as zero. 
* Why some judicial and some legislative measures missing? 
* Would it be better to take the average and omit missing?
replace v2x_jucon=v2xlg_legcon if v2x_jucon==.
replace v2xlg_legcon=v2x_jucon if v2xlg_legcon==.
gen xdem = v2xlg_legcon + v2x_jucon

merge m:1 recipientcow donorcow year using "Datasets\version4.1_csv\Alliances.dta"
drop if _merge==2
drop _merge

merge m:1 recipientcow donorcow using "Datasets\version4.1_csv\Alliances 2012.dta"
replace dyad_alliance_2012=0 if dyad_alliance_2012==.
replace alliance=dyad_alliance_2012 if year>2012
replace alliance=0 if alliance==.
drop dyad_alliance_2012
drop if _merge==2
drop _merge
rename alliance ally
label variable ally "1 if formal alliance between donor and recipient"
save "Merge\Dyad Year with controls.dta", replace

clear
import delimited "Datasets\UNHCR\refugee and asylum flows.csv"
kountry countryoforiginiso, from(iso3c) to (cown)
rename _COWN_ recipientcow
* Fix misc country codes 
replace recipientcow=667 if countryoforigin=="Palestinian"
replace recipientcow=530 if countryoforigin=="Ethiopia"
replace recipientcow=341 if countryoforigin=="Montenegro"
replace recipientcow=9909 if countryoforigin=="Turks and Caicos Islands"
replace recipientcow=9906 if countryoforigin=="Niue"
replace recipientcow=626 if countryoforigin=="South Sudan"
* Code refugees from Tibet, Hong Kong, and Macao to China
replace recipientcow=710 if countryoforigin=="China, Hong Kong SAR"
replace recipientcow=710 if countryoforigin=="China, Macao SAR"
replace recipientcow=710 if countryoforigin=="Tibetan"
rename countryoforigin recipientname

rename countryofasylum donorname
kountry countryofasylumiso, from(iso3c) to(cown)
rename _COWN_ donorcow
replace donorcow=626 if donorname=="South Sudan"
replace donorcow=530 if donorname=="Ethiopia"
replace donorcow=341 if donorname=="Montenegro"
replace donorcow=9909 if donorname=="Turks and Caicos Islands"
replace donorcow=710 if donorname=="China, Hong Kong SAR"
replace donorcow=710 if donorname=="China, Macao SAR"
drop if donorcow==.
drop if recipientcow==.

sort donorcow recipientcow year
by donorcow recipientcow year: egen refugeeflow = total( refugeesunderunhcrsmandate)
by donorcow recipientcow year: egen asylumflow = total( asylumseekers)
sort donorcow year
by donorcow year: egen donor_refugee = total( refugeesunderunhcrsmandate)
sort recipientcow year
by recipientcow year: egen recip_refugee = total( refugeesunderunhcrsmandate)

bysort donorcow recipientcow year: gen seq=_n
keep if seq==1
drop seq

gen lnrefugeeflow=ln(refugeeflow)
gen lnreciprefugees=ln(recip_refugee)
gen lndonorrefugees=ln(donor_refugee)

keep donorcow recipientcow year lnrefugeeflow lnreciprefugees lndonorrefugees

save "Datasets\UNHCR\Refugee Flows.dta", replace

use "Merge\Dyad Year with controls.dta", clear
merge m:1 donorcow recipientcow year using "Datasets\UNHCR\Refugee Flows.dta"
drop if _merge==2
replace lnrefugeeflow=0 if lnrefugeeflow==.
replace lnreciprefugees=0 if lnreciprefugees==.
replace lndonorrefugees=0 if lndonorrefugees==.


**********************************
* Dependent Variable List:       *
**********************************
* ln(Aid pc)
* ln(Econ Aid pc)
* ln(Gov Aid pc)
* ln(Bypass Aid pc)
* ln(Highly Fungible Aid pc)
* and 5 year moving average of each


gen lnaidpc = ln(dyad_commitments_sum / (populationtotalsppoptotl/1000))
replace lnaidpc=0 if lnaidpc==.
replace lnaidpc=0 if lnaidpc<0

gen lneconaidpc = ln(dyad_economic_commitments_sum / (populationtotalsppoptotl/1000))
replace lneconaidpc=0 if lneconaidpc==.
replace lneconaidpc=0 if lneconaidpc<0

gen lneconaidpc_sm = ln(dyad_economic_commit_sm_sum / (populationtotalsppoptotl/1000))
replace lneconaidpc_sm=0 if lneconaidpc_sm==.
replace lneconaidpc_sm=0 if lneconaidpc_sm<0

gen lngovaidpc = ln(dyad_governance_commitments_sum / (populationtotalsppoptotl/1000))
replace lngovaidpc=0 if lngovaidpc==.
replace lngovaidpc=0 if lngovaidpc<0

gen lneconaidpc_disb = ln(dyad_economic_disbursements_sum / (populationtotalsppoptotl/1000))
replace lneconaidpc_disb=0 if lneconaidpc_disb==.
replace lneconaidpc_disb=0 if lneconaidpc_disb<0

gen lngovaidpc_disb = ln(dyad_governance_disburs_sum / (populationtotalsppoptotl/1000))
replace lngovaidpc_disb=0 if lngovaidpc_disb==.
replace lngovaidpc_disb=0 if lngovaidpc_disb<0



gen lneconaidpc_narrow = ln(dyad_economic_commitments_sum / (populationtotalsppoptotl/1000))
replace lneconaidpc_narrow=0 if lneconaidpc_narrow==.
replace lneconaidpc_narrow=0 if lneconaidpc_narrow<0

gen lngovaidpc_narrow = ln(dyad_governance_commitments_sum / (populationtotalsppoptotl/1000))
replace lngovaidpc=0 if lngovaidpc_narrow==.
replace lngovaidpc=0 if lngovaidpc_narrow<0

gen lneconaidpc_disb_narrow = ln(dyad_economic_disbursements_sum / (populationtotalsppoptotl/1000))
replace lneconaidpc_disb_narrow=0 if lneconaidpc_disb_narrow==.
replace lneconaidpc_disb_narrow=0 if lneconaidpc_disb_narrow<0

gen lngovaidpc_disb_narrow = ln(dyad_governance_disburs_sum / (populationtotalsppoptotl/1000))
replace lngovaidpc_disb_narrow=0 if lngovaidpc_disb_narrow==.
replace lngovaidpc_disb_narrow=0 if lngovaidpc_disb_narrow<0




label variable lnaidpc "Ln dyadic aid commitments per 1000 population through all channels and to all sectors"
label variable lneconaidpc "Ln dyadic aid commitments per 1000 population to economic sector projects"
label variable lngovaidpc "Ln dyadic aid commitments per 1000 population to governance sector projects"

label variable lneconaidpc_disb "Ln dyadic aid disbursments per 1000 population to economic sector projects"
label variable lngovaidpc_disb "Ln dyadic aid disbursments per 1000 population to governance sector projects"

sum lnaidpc lneconaidpc lngovaidpc lneconaidpc_disb lngovaidpc_disb if dac_donor==1




********************************************************************************
********************************************************************************
** Create Ln(Aid), 5 Year Moving Averages, and HHIs                           **
********************************************************************************
********************************************************************************
xtset dyad_id year 
* Create 5y moving average of dyad_ln_commit
tsegen lnaidpc5ma = rowmean(L(1/5).lnaidpc)
tsegen lneconaidpc5ma = rowmean(L(1/5).lneconaidpc)
tsegen lngovaidpc5ma = rowmean(L(1/5).lngovaidpc)

label variable lnaidpc5ma "5 year moving average of Ln dyadic aid commitments per 1000 population through all channels and to all sectors"
label variable lneconaidpc5ma "5 year moving average of Ln dyadic aid commitments per 1000 population to economic sector projects"
label variable lngovaidpc5ma "5 year moving average of Ln dyadic aid commitments per 1000 population to governance sector projects"

**********************************
* Independent Variable List:     *
**********************************
** Human Rights = humanrights
** Donor Human Rights = donorrights
** UNGA Vote Absolute Ideal Point Distance = idealptdist
** Ally = ally
** Colony = colony
** ln(Distance) = lndist
** ln(Refugees) = lnrefugeeflow
** ln(Exports) = lnexport
** ln(Trade) = lntrade
** Executive Constraints = xdem
** ln(Population) = lnpop
** ln(GDP) = lngdp
** ln(GDPpc) = lngdppc
** State Capacity = statecap
** Global Aid Flows = globalaidflows
*! Regional Percent Non-DAC Aid = pctnondac
** HHI Recipient = hhi_recip
** HHI Region = hhi_region

* Tidying the data...
gen lnpop=ln(populationtotalsppoptotl)
rename wgi_gee statecap

label variable colony "1 if recipient is former colony of donor"
label variable lnpop "Ln of recipient country population"
label variable xdem "Composite of VDEM judicial and legislative constraints on the executive indices"
gen lngdppc=ln( gdppercapitaconstant2010usnygdpp)
gen lngdp = ln( gdpconstant2010usnygdpmktpkd)
label variable lngdppc "Ln Recipient GDP per capita"
label variable lngdp "Ln recipient GDP"
rename IdealPointDistance idealptdist
label variable lnrefugeeflow "Natural log of 1+ the number of refugees from a recipient to a donor in a year"
label variable lnreciprefugees "Natural log of 1+ the number of refugees exiting a recipient country in a year"
label variable lndonorrefugees "Natural log of 1+ the number of refugees entering a donor country in a year"

save "Merge\Dyad Year with controls.dta", replace

use "Merge\Dyad Year with controls.dta", clear

* Create lags of important independent variables
xtset dyad_id year
gen humanrights_L1=l.humanrights
gen donorrights_L1=l.donorrights
gen idealptdist_L1=l.idealptdist
gen ally_L1= l.ally
gen lnrefugeeflow_L1= l.lnrefugee 
gen lnexport_L1= l.lnexport
gen lntrade_L1= l.lntrade
gen xdem_L1= l.xdem
gen lnpop_L1= l.lnpop
gen lngdp_L1= l.lngdp
gen lngdppc_L1= l.lngdppc
gen statecap_L1= l.statecap
gen hhi_recip_L1=  l.hhi_recip
gen hhi_region_L1=  l.hhi_region
gen corruption_L1= l.wgi_cce
* And DVs
gen lnaidpc_L1= l.lnaidpc
gen lneconaidpc_L1= l.lneconaidpc
gen lneconaidpc_sm_L1= l.lneconaidpc_sm
gen lngovaidpc_L1= l.lngovaidpc
gen lneconaidpc_disb_L1= l.lneconaidpc_disb
gen lngovaidpc_disb_L1= l.lngovaidpc_disb
gen highterror_L1= l.highterror
gen highdissent_L1= l.highdissent
gen armedforces_L1= l.armedforcespersonneloftotallabor

gen lneconaidpc_narrow_L1= l.lneconaidpc_narrow
gen lngovaidpc_narrow_L1= l.lngovaidpc_narrow

gen recip_nondac_commitments_sum=dyad_commitments_sum * nondac_donor
gen recip_dac_commitments_sum=dyad_commitments_sum * dac_donor
gen lnrecipnondac=ln(1+ recip_nondac_commitments_sum)
gen recipnondacpct= recip_nondac_commitments_sum/( recip_nondac_commitments_sum + recip_dac_commitments_sum)
replace recipnondacpct = recipnondacpct*100
gen pctnondac_L1=l.recipnondacpct
label variable pctnondac_L1 "Percent of recipient's aid commitments by non-DAC donors"
label variable lnrecipnondac "Natural log of recipient's aid commitments by non-DAC donors"
label variable lndonorrefugees "Natural log of 1 + total refugee inflows to donor country by year"
label variable lnreciprefugees "Natural log of 1 + total refugee ouflows from recipient country by year"
label variable highdissent "1 if in top quartile of protest and riot events among countries"
label variable highterror "1 if over 2 terrorist attacks in a year (top quartile of all countries)"
label variable lnrefugeeflow "Natural log of 1 + the number of refugees from a recipient to a donor country"
drop _merge

label variable lnaidpc_L1 "1 year lag Ln dyadic aid commitments per 1000 population (all sectors and channels)"
label variable lngovaidpc_L1 "1 yr lag Ln dyadic aid commitments per 1000 population to governance sector projects"
label variable lneconaidpc_L1 "1 yr lag Ln dyadic aid commitments per 1000 population to economic sector projects"
label variable highdissent_L1 "1 yr lag 1 if in top quartile of protest and riot events among countries"
label variable highterror_L1 "1 yr lag 1 if >=2 terrorist attacks in a year (top quartile of all countries)"
label variable hhi_region_L1 "1 yr lag HHI for region-year (all aid)"
label variable hhi_recip_L1 "1 yr lag HHI for recipient-year (all aid)"
label variable pctnondac_L1 "1 yr lag Percent of global aid provided by non-DAC donors"
label variable statecap_L1 "1 yr lag WGI governance effectiveness estimate"
label variable lngdppc_L1 "1 yr lag Ln recipient GDP per capita"
label variable lngdp_L1 "1 yr lag Ln recipient GDP"
label variable lnpop_L1 "1 yr lag Ln recipient population"
label variable xdem_L1 "1 yr lag recipient judicial and legislative constraints on the executive"
label variable lnexport_L1 "1 yr lag Ln exports from donor to recipient"
label variable lntrade_L1 "1 yr lag Ln aggregate trade between donor to recipient"
label variable lnrefugeeflow_L1 "1 yr lag Ln refugee flow from recipient to donor"
label variable ally_L1 "1 yr lag 1 if formal military alliance between donor and recipient"
label variable idealptdist_L1 "1 yr lag UNGA voting ideal point distance"
label variable donorrights_L1 "1 yr lag donor human rights score (Fariss 2014,2019)"
label variable humanrights_L1 "1 yr lag recipient human rights score (Fariss 2014, 2019)"

replace recipnondacpct=0 if recipnondacpct==.
replace battlerela=0 if battlerela==.
replace colony=0 if colony==.

gen repression_L1=-1*humanrights_L1
label variable repression_L1 "Repression Score"

gen lnrecipnondac_L1 = l.lnrecipnondac


* Demean variables


xtset dyad_id year

keep if dac_donor==1

drop if donorcode==45
drop if donorcode==72
drop if donorcode==87
drop if donorcode==546
drop if donorcode==611
drop if donorcode==613
drop if donorcode==730
drop if donorcode==764
drop if donorcode==765


keep if year > 2002
keep if year < 2019

foreach v of varlist lndist repression_L1 corruption_L1 armedforces_L1 donorrights_L1 idealptdist_L1 lnrefugeeflow_L1 lnexport_L1 lntrade_L1 xdem_L1 lngdppc_L1 lnpop_L1 lngdp_L1 statecap_L1 hhi_recip_L1 lnaidpc_L1 lngovaidpc_L1 lneconaidpc_L1 lneconaidpc_sm_L1 lngovaidpc_disb_L1 lneconaidpc_disb_L1 lneconaidpc_narrow_L1 lngovaidpc_narrow_L1 {
    summarize `v'
    generate `v'_demeaned = `v' - r(mean)
}


label variable repression_L1_demeaned "State Violence"
label variable donorrights_L1_demeaned "Donor Rights "
label variable idealptdist_L1_demeaned "UN Ideal Point Distance"
label variable ally_L1 "Military Alliance"
label variable colony "Former Colony"
label variable lnexport_L1_demeaned "Ln Bilateral Exports"
label variable lntrade_L1_demeaned "Ln Bilateral Trade"
label variable lnrefugeeflow_L1_demeaned "Ln Refugee Flow"
label variable highterror_L1 "High Terrorism"
label variable highdissent_L1 "High Dissent"
label variable xdem_L1_demeaned "Executive Constraints"
label variable statecap_L1_demeaned "State Capacity"
label variable hhi_recip_L1_demeaned "Aid Concentration"
label variable lnpop_L1_demeaned "Ln Population"
label variable lngdp_L1_demeaned "Ln GDP"
label variable lngovaidpc_L1_demeaned "Governance Aid Lag DV"
label variable lneconaidpc_L1_demeaned "Economic Aid Lag DV"
label variable lneconaidpc_sm_L1_demeaned "Economic Aid Lag DV"
label variable lndist_demeaned "Ln Distance"
label variable corruption_L1_demeaned "Control of Corruption"
label variable armedforces_L1_demeaned "Control of Corruption"

* Drop South Sudan (unbalances panel, too many missing data sources)
drop if recipientcode==279

save "Chapter 4 Analysis.dta", replace
Share



Follow this website


You need to create an Owlstown account to follow this website.


Sign up

Already an Owlstown member?

Log in