/*---[ Voreinstellungen ]------------------------------------------------------*/ version 10 set memory 100m set more off, permanently //#delimit ; //cd "E:\projects\za\stata" cd "T:\data\" //log using logfile, replace /*-----------------------------------------------------------------------------*/ /*---[ Datensatz laden ]-------------------------------------------------------*/ use ZA4501_AC06.dta, clear /*-----------------------------------------------------------------------------*/ /*---[ Datensaetze exportieren ]-----------------------------------------------*/ outfile using ZA4501_AC06.dat, nolabel replace outsheet v2 v4 v27 v53 using "dataAllbusNolab.csv", /// nolabel replace nonames delimiter(";") /*-----------------------------------------------------------------------------*/ /*---[ Ungelabelten Teildatensatz laden ]--------------------------------------*/ /* Variablenzuordnung im Allbus (siehe ZA4501COMP_AC06.pdf): v2 = v2 (ID) v2 = v4 (Erhebungsgebiet; Vollversion v5, siehe fuer Auspraegungen ZA4501DHB_AC06.pdf) v3 = v27 (Alter) v4 = v53 (Schlussstrich unter Nazizeit) */ insheet using dataAllbusNolab.csv, clear delimiter(";") /*-----------------------------------------------------------------------------*/ /*---[ Labels vergeben ]-------------------------------------------------------*/ label drop _all // zunaechst alle existierenden Labeldefinitionen loeschen label variable v1 "ID" label variable v2 "Erhebungsgebiet (Ost/West)" label variable v3 "Alter" label variable v4 "Schlussstrich unter Nazizeit" rename v3 alter rename alter v3 sort v2 label define erhebungsgebiet 1 "West" 2 "Ost" label value v2 erhebungsgebiet label define dummy1 1 "ja" 2 "nein" label define dummy0 0 "nein" 1 "ja" label value v4 dummy1 /*-----------------------------------------------------------------------------*/ /*---[ Fehlende Werte auszeichnen ]--------------------------------------------*/ // kurze Beschreibung der Daten summarize v1 v2 v3 v4 table v3 table v4 mvdecode v3, mv(999 = .a) //drop test //gen test = v3 //mvdecode test, mv(30/40 = .b \ 41/50 = .c) mvdecode v4, mv(0,9 = .a) // Beispiel fuer falschen Umgang mit missing values tab v4, nolab //generate test = v4 //replace test = 10 if v4 >1 //tab test //drop test /*-----------------------------------------------------------------------------*/ /*---[ Neue Variable erstellen mit -generate- und -egen- ]---------------------*/ // generate summarize v3 return list generate mean_v3 = r(mean) generate v3c = v3 - mean_v3 generate v4r = abs(v4 - 2) // egen egen test = sum(v3) count if missing(v3) replace test = test/(_N-r(N)) // Vergleich der beiden Altersmittelwerte list mean_v3 test in 1 // Variable test loeschen drop test /*-----------------------------------------------------------------------------*/ /*---[ Variabler recodieren ]---------------------------------------------------*/ recode v3 (18/35 = 1 Jungspund) /// (36/45 = 2 Lebensblüte) /// (46/55 = 3 Gesetzter) /// (56/65 = 4 Frührente) /// (66/100 = 5 Rente), generate(v3r) recode v2 1=0 2=1, generate(ost) /*-----------------------------------------------------------------------------*/ /*---[ Aggregieren und Datensaetze zusammenspielen ]----------------------------*/ // Zunaechst Daten speichern sort v2 save dataAllbus.dta, replace // zunaechst Altersmittel nach Erhebungsgebiet berechnen collapse (mean) v3agg=v3 , by(v2) // Mittelwert nach West/Ost // West-Ost-Altersmittel zum Datensatz spielen sort v2 merge v2 using dataAllbus.dta // Kurzfassung der beiden vorhergehenden Befehle, wenn eine eindeutige ID existiert // merge v1 using dataAllbus.dta, sort /*-----------------------------------------------------------------------------*/ /*---[ -by- und -bysort- ]-----------------------------------------------------*/ bysort v2: summarize v3 // Folgendes funktioniert nicht, da falsch sortiert. // sort v3 // by v2: summarize v3 // Es muss zunaechst nach v2 sortiert werden. sort v2 by v2: summarize v3 /*-----------------------------------------------------------------------------*/ /*---[ Beschreibung des Datensatzes ]------------------------------------------*/ // Ein Codebuch erstellen codebook // Variableninhalte auflisten list v2 v3 in 1/10 list v1 v2 v3 v4 if v3 > 92 // Missings beachten! // Struktur und Formate des Datensatzes describe // Struktur der Variablen inspect inspect v1 - v4 inspect v* inspect *2 // Verteilungen tabulate v2 // tabulate oneway tab1 v2 v4 tabulate v4 v2, column // tabulate twoway tabulate v4 v2, column row chi2 tab2 v4 v3r v2, column row chi2 nofreq // Deskriptive Statistiken summarize v1 - v4 tabstat v3 // Mittelwert als default // Verwendung von by bysort v2: summarize v3 v4 /*-----------------------------------------------------------------------------*/ /*---[ Einfache Grafiken ]-----------------------------------------------------*/ histogram v3 graph box v3 graph box v3, by(v2) graph box v3, by(v2) ytitle(Alter in Jahren) scatter v3 v2 // graph editor nutzen... scatter v3 v2, jitter(10) ytitle(Alter in Jahren) /// xtitle(Erhebungsgebiet) title(Altersverteilung) subtitle(Streudiagramm) /// xlabel(1 "West" 2 "Ost" 0.5(2)2.5) /*-----------------------------------------------------------------------------*/ log close exit