5 Dateien- und DoFile-Verwaltung
5.1 dir - alles einlesen
glo pfad "D:\oCloud\Home-Cloud\Lehre\BIBB\StataProgBIBB\projekt"
global filelist: dir . files "*.*" //Lister aller Dateien
mac l filelist
global dtalist: dir "${pfad}" files "baua*.dta" // Liste aller .dta-Dateien
mac l dtalist
loc usefile `: word 1 of ${dtalist}' // erster Eintrag aus der Liste
dis "${pfad}/`usefile'"
use "${pfad}/`usefile'", clear // dta laden
loc n_datasets : list sizeof global(dtalist) // anzahl dta einträge
foreach i of numlist 2(1)`n_datasets' {
loc appendfile `: word `i' of ${dtalist}' // name aus list aufrufen
qui append using "${pfad}/`appendfile'" // append
dis "`appendfile' appended" // Kontrolle
}
, respectcase: global dtalist: dir "${pfad}" files "baua*.dta , respectcase" würde “BAUA.dta” ignorieren.
5.1.1 copy
Mit copy können wir Dateien kopieren.
loc usefile `: word 1 of ${dtalist}' // erster Eintrag aus der Liste
loc copyfile "copy_`usefile'"
dis "`usefile'"
dis "`copyfile'"
copy ${pfad}/`usefile' ${pfad}/`copyfile' , replace
// hat das geklappt?
global dtalist2: dir "${pfad}" files "*baua*.dta" // Liste aller .dta-Dateien
mac l dtalist
mac l dtalist25.1.2 erase
Mit erase können wir Dateien löschen.
loc usefile `: word 1 of ${dtalist}' // erster Eintrag aus der Liste
loc copyfile "copy_`usefile'"
erase ${pfad}/`copyfile'
// hat auch das geklappt?
global dtalist3: dir "${pfad}" files "*baua*.dta" // Liste aller .dta-Dateien
mac l dtalist
mac l dtalist2
mac l dtalist35.2 Verzeichnisse & DoFiles erstellen
Mit mkdir können wir Verzeichnisse erstellen:
global pfad "D:\oCloud\Home-Cloud\Lehre\BIBB\StataProgBIBB\projekt"
mkdir "${pfad}/data"
mkdir "${pfad}/log"
mkdir "${pfad}/graph"
mkdir "${pfad}/results"
mkdir "${pfad}/tables"file können wir nutzen, um ein DoFile mit globals zu erstellen (oder natürlich auch locals oder allen anderen Informationen):
*erstelle doFile fuer macros -> kurzes doFile um Pfade in Schleifen richtig zu setzen, wird dann in Schleifen immer aufgerufen
file open macros using ${prog}\macrodofile.do, write replace
file write macros "glo pfad ${pfad} " _n
file write macros "glo orig ${orig} " _n
file write macros "glo data ${data} " _n
file write macros "glo log ${log} " _n
file write macros "glo res ${results}" _n
file write macros "glo graph ${graph} " _n
file write macros "glo prog ${prog} " _n
file close macros 5.3 Master DoFile
5.3.1 DoFile mit Argumenten starten
Ein DoFile kann auch direkt aus einem Master-DoFile gestartet werden. Werte, die wir danach angeben, können im DoFile mit der Angabe der Position abgerufen werden:
do "${prog}/051_DoFile.do" 2use "${orig}/BIBBBAuA_2018_suf1.0.dta", clear
dis "Auszählung für `1'"
tab S1 if m1202 == `1'do "${prog}/051_DoFile2.do" 4 2 mobillocal ausb `1'
local gend `2'
local var `3'
use "${orig}/BIBBBAuA_2018_suf1.0.dta", clear
dis "Auszählung für Ausbildung = `ausb' & Geschlecht = `gend'"
tab gkpol if m1202 == `ausb' & S1 == `gend'
tab gkpol `var' if m1202 == `ausb' & S1 == `gend'5.3.2 in neuer Session starten
cd ${prog}
winexec `c(sysdir_stata)'StataSE-64.exe do "${prog}/052_DoFile1.do" 4 2 mobilStartet 052_DoFile1.do in einer neuen Session.
Achtung: hier sind dann auch die globals, locals usw. weg. Um die globals zu übernehmen, muss dann ein macrodofile eingebunden werden.
5.3.3 mehrere Sessions starten
forvalues s = 1/2{
cd ${prog}
winexec `c(sysdir_stata)'StataSE-64.exe do "${prog}/052_DoFile1.do" 4 `s' mobil
}5.4 Übungen
5.4.1 Übung
- Im zip-Ordner
dir_übung.zipfinden sich auch.csv-Dateien. Lesen Sie diese nach der Reihe ein und speichern Sie die Daten als.dta- danach können alle Datensätze zusammengefügt werden.- Entpacken Sie die Dateien aus dem
zip-Ordner in passendes ein Verzeichnis (bspw., das welches Sie mit$dataansteuern). - Verwenden Sie also die
fileliststatt derdtalistvon oben. - Lesen Sie mit
import delimited ".... baua3.csv", delimiter(";") encoding(ISO-8859-2) cleardie csv-Dateien jeweils ein und legen Sie alsdtaab. - Anschließend können Sie den
dta-Schleife von oben verwenden, um alle Teildatensätze einzulesen. Wie viele Fälle haben Sie im Datensatz?
- Entpacken Sie die Dateien aus dem
- Kopieren Sie eine der Dateien und löschen Sie sie anschließend wieder.
5.4.2 Übung
- Starten Sie getrennte Auswertungen für Männer und Frauen für das Merkmal
zpalter, bspw. mitsummaryund stoßen Sie dieses mitdo ...an.