5 Dateien- und DoFile-Verwaltung
5.1 dir
- alles einlesen
"D:\oCloud\Home-Cloud\Lehre\BIBB\StataProgBIBB\projekt"
glo pfad
global filelist: dir . files "*.*" //Lister aller Dateien
l filelist
mac
global dtalist: dir "${pfad}" files "baua*.dta" // Liste aller .dta-Dateien
l dtalist
mac
`: word 1 of ${dtalist}' // erster Eintrag aus der Liste
loc usefile "${pfad}/`usefile'"
dis
use "${pfad}/`usefile'", clear // dta laden
list sizeof global(dtalist) // anzahl dta einträge
loc n_datasets : foreach i of numlist 2(1)`n_datasets' {
`: word `i' of ${dtalist}' // name aus list aufrufen
loc appendfile qui append using "${pfad}/`appendfile'" // append
"`appendfile' appended" // Kontrolle
dis
}
, 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.
`: word 1 of ${dtalist}' // erster Eintrag aus der Liste
loc usefile "copy_`usefile'"
loc copyfile "`usefile'"
dis "`copyfile'"
dis
${pfad}/`usefile' ${pfad}/`copyfile' , replace
copy
// hat das geklappt?
global dtalist2: dir "${pfad}" files "*baua*.dta" // Liste aller .dta-Dateien
l dtalist
mac l dtalist2 mac
5.1.2 erase
Mit erase
können wir Dateien löschen.
`: word 1 of ${dtalist}' // erster Eintrag aus der Liste
loc usefile "copy_`usefile'"
loc copyfile ${pfad}/`copyfile'
erase
// hat auch das geklappt?
global dtalist3: dir "${pfad}" files "*baua*.dta" // Liste aller .dta-Dateien
l dtalist
mac l dtalist2
mac l dtalist3 mac
5.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):
in Schleifen richtig zu setzen, wird dann in Schleifen immer aufgerufen
*erstelle doFile fuer macros -> kurzes doFile um Pfade using ${prog}\macrodofile.do, write replace
file open 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 write macros close macros file
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" 2
use "${orig}/BIBBBAuA_2018_suf1.0.dta", clear
"Auszählung für `1'"
dis tab S1 if m1202 == `1'
do "${prog}/051_DoFile2.do" 4 2 mobil
local ausb `1'
local gend `2'
local var `3'
use "${orig}/BIBBBAuA_2018_suf1.0.dta", clear
"Auszählung für Ausbildung = `ausb' & Geschlecht = `gend'"
dis tab gkpol if m1202 == `ausb' & S1 == `gend'
tab gkpol `var' if m1202 == `ausb' & S1 == `gend'
5.3.2 in neuer Session starten
${prog}
cd `c(sysdir_stata)'StataSE-64.exe do "${prog}/052_DoFile1.do" 4 2 mobil winexec
Startet 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{
${prog}
cd `c(sysdir_stata)'StataSE-64.exe do "${prog}/052_DoFile1.do" 4 `s' mobil
winexec }
5.4 Übungen
5.4.1 Übung
- Im zip-Ordner
dir_übung.zip
finden 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$data
ansteuern). - Verwenden Sie also die
filelist
statt derdtalist
von oben. - Lesen Sie mit
import delimited ".... baua3.csv", delimiter(";") encoding(ISO-8859-2) clear
die csv-Dateien jeweils ein und legen Sie alsdta
ab. - 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. mitsummary
und stoßen Sie dieses mitdo ...
an.