Hallo zusammen,
ich arbeite gerade an einem SC6 merge von spEmp, spUnemp, pTarget, spSchoolExtExam, Education und Basics. Da es sich um meinen ersten merge handelt, habe ich mich an einen vorherigen Blogbeitrag orientiert. ([SC6: merge - #2 von daniel.bela])
Mein Do-File sieht wie folgt aus: (anscheinend kann ich noch keine Dateien anfügen, also hier als Fließtext)
SC6_merge
clear all
set more off
global root „HIER EIGENEN LINK EINFÜGEN“
cd „$root“
cap: log using „SC6_merge_neu“, replace
**Episodendaten vorbereiten
- SC6_spEmp_D_13-0-0
use SC6_spEmp_D_13-0-0, clear
keep ID_t splink spell subspell wave ts23203 ts23223_g1 ts23228 ts23235 ts23410_g1
keep if subspell==0
drop subspell
save „spEmp“, replace
use SC6_Biography_D_13-0-0, clear
keep if sptype == 26
merge 1:1 ID_t splink using „spEmp“, nogenerate assert(match using) keep(match)
generate enddate=ym(endy,endm)
generate startdate=ym(starty,startm)
generate duration=enddate-startdate+1
expand duration
bysort ID_t splink : generate intdate=startdate+_n-1
format enddate startdate intdate %tm
save „Episodendaten_Emp“, replace
- SC6_spUnemp_D_13-0-0
use SC6_spUnemp_D_13-0-0, clear
keep ID_t splink spell subspell wave ts25208
keep if subspell==0
drop subspell
save „spUnemp“, replace
use SC6_Biography_D_13-0-0, clear
keep if sptype == 27
merge 1:1 ID_t splink using „spUnemp“, nogenerate assert(match using) keep(match)
generate enddate=ym(endy,endm)
generate startdate=ym(starty,startm)
generate duration=enddate-startdate+1
expand duration
bysort ID_t splink : generate intdate=startdate+_n-1
format enddate startdate intdate %tm
save „Episodendaten_Unemp“
**Querschnitts- und Paneldaten mergen
- merge sSC6_spSchoolExtExam_D_13-0-0 + SC6_Education_D_13-0-0
use SC6_spSchoolExtExam_D_13-0-0, clear
merge 1:m ID_t exam using „SC6_Education_D_13-0-0“, nogen
keep ID_t exam wave ts11300 ts11308 ts1130y number splink tx28101 tx28103
save „merge_spSchoolExtExam_Education“, replace
- merge SC6_Basics_D_13-0-0 + merge_spSchoolExtExam_Education
use SC6_Basics_D_13-0-0, clear
merge 1:m ID_t using „merge_spSchoolExtExam_Education“, nogen
keep ID_t exam wave tx29003 tx29064 tx29068 ts11300 ts11308 ts1130y number splink tx28101 tx28103 tx29062
save „merge_spSchoolExtExam_Education_Basics“, replace
- merge merge_Basics_spSchoolExtExam + SC6_pTarget_D_13-0-0
use SC6_pTarget_D_13-0-0, clear
merge 1:1 ID_t wave using SC6_CohortProfile_D_13-0-0, nogenerate
keep ID_t wave t400500_g1 t400500_g3 t413500_v1 t514002 t514009 t515035 t700001 t70000y t724201 t725000 t731301_g1 t731301_g2 t731351_g2 t731401 t731402 t731404_v1 t731451 t731454_v1 t751001_g2 tx8600m tx8600y
merge 1:m ID_t wave using „merge_spSchoolExtExam_Education_Basics“, nogen
keep ID_t exam wave tx29003 tx29064 tx29068 ts11300 ts11308 ts1130y number splink tx28101 tx28103 tx29062 t400500_g1 t400500_g3 t413500_v1 t514002 t514009 t515035 t700001 t70000y t724201 t725000 t731301_g1 t731301_g2 t731351_g2 t731401 t731402 t731404_v1 t731451 t731454_v1 t751001_g2 tx8600m tx8600y
save „merge_spSchoolExtExam_Education_Basics_pTarget“, replace
**merge Querschnitts-/Paneldaten mit Episodendaten
use merge_spSchoolExtExam_Education_Basics_pTarget, clear
generate intdate=ym(tx8600m, tx8600y)
format %tm intdate
save merge_spSchoolExtExam_Education_Basics_pTarget_intdate, replace
use merge_spSchoolExtExam_Education_Basics_pTarget_intdate, clear
merge m:m ID_t intdate using „Episodendaten_Emp“, nogen keep(master match)
save „Quer+Panel+Emp“, replace
use Quer+Panel+Emp, clear
merge m:m ID_t intdate using „Episodendaten_Unemp“, nogen keep(master match)
keep ID_t wave tx29003 tx29064 tx29068 ts11300 ts11308 ts1130y splink tx28101 tx28103 tx29062 t400500_g1 t400500_g3 t413500_v1 t514002 t514009 t515035 t700001 t70000y t724201 t725000 t731301_g1 t731301_g2 t731351_g2 t731401 t731402 t731404_v1 t731451 t731454_v1 t751001_g2 spell ts25208 ts23203 ts23223_g1 ts23228 ts23235 ts23410_g1
save „Quer+Panel+Episoden“, replace
duplicates report ID_t wave
quietly : duplicates tag ID_t wave , generate(dups)
tabulate dups
keep if dups == 0
log close
clear all
exit
Meine Frage ist, ob der merge generell plausibel ist, vor allem in Hinsicht auf Panel- und Episodendaten, oder ob es noch Verbesserungspotenzial gibt, da es sich ja wie gesagt, um meinen ersten Merge handelt.
Ich freue mich auf eure Unterstützung.
Vielen Dank im Voraus!
Katharina