*****************************************************
*Project: STATA Tutorial for EE469 students			*
*Objective: To illustrate basic stata commands		*
*Created: January 28, 2015 							*
*Last revised: April 26, 2018						*
*****************************************************

clear 
set more off

*cd J:\EE469\stata_workshop\data
cd C:\Users\Ummie\Dropbox\EE469\stata_workshop

use sample.dta, clear  

** Basic recode and data transformation commands **

* First glance at the data *
sum
codebook, compact 
tab province

edit month year hh_no relation sex age

*Basic recode*
gen rural=area			/*use "gen" to create a new variable*/
recode rural (2=1) (1=0)

recode sex (1=1) (2 =0), gen(male)
recode status (. = 99), gen(wkstat)

*dealing with ranges*
recode grade_highest (110 211/215 241/242 251/255=3) (210 240 250=6) (310 320 330 340 350=9) ///
      (410/460=12)  (510 520=14) (610/660=16) (710/760=18) (810/870=21) (911/929=12) (980=.), gen(yrschl)

*replace* 
gen empstat=. if age<15
	replace empstat=1 if work_7day==1
	replace empstat=1 if work_7day==2& receive==1
	replace empstat=1 if receive==2& return==1
	replace empstat=2 if work_7day==2&seeking==1
	replace empstat=2 if work_7day==2&available==1
	replace empstat=3 if available==2&re_unavail==3
	replace empstat=4 if re_unavail==1|re_unavail==2|(re_unavail>3 & re_unavail<=8)

*rename* 
rename approx monthly_wage

** Generating new variables **

gen age2 = age*age
gen lninc=ln(monthly_wage)
gen inc1000=monthly_wage/1000

* dummy variables *
gen employed=(empstat==1)
	replace employed=. if age<15
	
recode age (11/20=1) (21/30=2) (31/40=3) (41/50=4) (51/60=5) (nonm=.), gen(age_r)
tab age_r, gen(agegrp)

* IF statement*
tab empstat if male==1

** Variable and value labels **
recode work_7day (2=0), gen(wk7day)
label var wk7day "Worked in the last 7 days"

label var wkstat "Work Status"
label define wkstat 1 "Employer" 2 "Own-account worker" 3 "Unpaid family worker" 4 "Employee-Government" 5 "State Enterprise employee" 6 "Employee-private" 7 "Member of Co-operative group" 99 "NIU-age<15 or not working"
label values wkstat wkstat 


** Basic descriptives **
tab wkstat
tab wkstat, nol

sort sex
by sex: sum age

ttest age, by(sex)

** Basic regression **
reg monthly_wage male agegrp1-agegrp5

xi: reg monthly_wage male i.age_r  i.wkstat
 