Excel in Stata - speichert nicht

Fragen zu Stata Syntax und Do-Files.

Excel in Stata - speichert nicht

Beitragvon Stata11 » So 13. Jul 2014, 17:35

Hallo,

ich möchte xls Dateien als Ausgangspunkt für ein Stata Skript nutzen und habe zu diesem Zweck folgenden Code verwendet:

set more off
global workdir "C:\Users\Fabian\Desktop\Master_Thesis\CC_M&A\"
cd "$workdir"
capture mkdir "$workdir/index dta"
capture mkdir "$workdir/index dta format"
cd "$workdir/index xls/"
! ls *.xlsx >0filelistxls.txt
file open myfile using "0filelistxls.txt", read
file read myfile line
while r(eof)==0 {
clear
import excel `line', firstrow
save "$workdir/index dta/`line'.dta", replace
file read myfile line
}
file close myfile
erase "$workdir/index xls/0filelistxls.txt"


Ich möchte, dass die resultierende dta Datei im Ordner index dta gespeichert wird, was jedoch nicht funktioniert. Da ich erst seit kurzem mit Stata arbeite, habe ich vermutlich einen recht simplen Fehler gemacht.

Für eure Hilfe wäre ich sehr dankbar.

VG
Stata11
 
Beiträge: 7
Registriert: So 13. Jul 2014, 17:30
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon daniel » So 13. Jul 2014, 19:47

[...] was jedoch nicht funktioniert


Was heißt das bitte genau?
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon Stata11 » So 13. Jul 2014, 20:02

stata speichert keine Datei in dem Ordner index dta ab. Ohne eine Fehlermeldung...
Stata11
 
Beiträge: 7
Registriert: So 13. Jul 2014, 17:30
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon daniel » So 13. Jul 2014, 20:28

Ich schätze,

Code: Alles auswählen
! ls *.xlsx >0filelistxls.txt


erzeugt eine leere Datei. Potentiell sind auch die backslahes im Dateipfad problematisch (http://www.stata-journal.com/article.html?article=pr0042).

Vielleicht hilf Dir -xls2dta- (SSC) weiter. Der code wäre etwa

Code: Alles auswählen
// install -xls2dta-
ssc inst xls2dta

// convert the xlsx files
cd "C:\Users\Fabian\Desktop\Master_Thesis\CC_M&A\index xls"
xls2dta using *.xlsx ,save("C:\Users\Fabian\Desktop\Master_Thesis\CC_M&A\index dta") ///
firstrow replace
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon Stata11 » Do 17. Jul 2014, 18:07

Hey Daniel,
vielen Dank für deine Antwort. Leider komme ich auch damit nicht weiter...
Stata11
 
Beiträge: 7
Registriert: So 13. Jul 2014, 17:30
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon daniel » Do 17. Jul 2014, 20:38

Leider komme ich auch damit nicht weiter...


Sorry, aber mit derartigen Ausagen wird sich das auch kaum ändern.

Was heißt das denn? Was genau hast Du gemacht? Hast Du überprüft, ob die Datei, die Du offensichtlich erzeugen willst tatsächlich den gewünschten Inhalt hat? Hast Du -xls2dta- ausprobiert? Was genau hast Du getippt? Was genau hat Stata gemacht/nicht gemacht? Welche Art Hilfe erwartest Du hier?
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon Stata11 » Sa 19. Jul 2014, 10:55

Die Problematik liegt darin, dass die Datei, die ich erzeugen möchte gar nicht erst erzeugt wird. Jedoch werden die Ordner index dta und dta erstellt. Deinen Vorschlag folgend habe ich -xls2dta- mit Hilfe des von dir beschriebenen Codes installiert. Allerdings erhalte ich nach eingabe des Codes ssc inst xls2dta folgende Fehlermeldung:
connection timed out -- see help r(2) for troubleshooting r(2);
Daher habe ich es nochmals mit dem ursprünglichen Code versucht:


set more off
global workdir "C:\Users\Fabian\Desktop\Master_Thesis\CC_M&A"
cd "$workdir"
capture mkdir "$workdir/index dta"
capture mkdir "$workdir/index dta format"
cd "$workdir/index xls/"
! dir *.xlsx /b >"0filelistxls.txt" // WIN
file open myfile using "0filelistxls.txt", read
file read myfile line
while r(eof)==0 {
clear
import excel `line', firstrow
save "$workdir/index dta/`line'.dta", replace
file read myfile line
}
file close myfile
erase "$workdir/index xls/0filelistxls.txt"



und erhalte folgende Fehlermeldung:


unrecognized command: import
r(199);

Für Hilfe bei der Transformation der Excel Dateien in dta Dateien wäre ich dankbar, da ich erst seit kurzem mit Stata arbeite.
@Daniel: Ich hoffe das Problem jetzt etwas klarer beschrieben zu haben.
Stata11
 
Beiträge: 7
Registriert: So 13. Jul 2014, 17:30
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon daniel » Sa 19. Jul 2014, 11:35

Viel besser beschrieben. Damit kann man was anfangen.

Allerdings erhalte ich nach eingabe des Codes ssc inst xls2dta folgende Fehlermeldung:
connection timed out -- see help r(2) for troubleshooting r(2);


Klingt nach Problemen mit dem Internetzugang. Ein click auf den blau unterlegten return code -r(2)- beschreibt das Problem und potentielle Lösungen.

Die Problematik liegt darin, dass die Datei, die ich erzeugen möchte gar nicht erst erzeugt wird.


Etwas in der Richtung habe ich vermutet, wobei Dein Code auf meinem System (Win 7, 32-bit, Stata 11.2 und 12.1) sehr wohl eine Datei erzeugt. Diese hat aber keinen Inhalt. Das sollte bei Dir ebenso sein, weil ansonsten die Zeile

Code: Alles auswählen
file open myfile using "0filelistxls.txt", read


die Fehlermedung "file 0filelistxls.txt not found" und den return code 601 zurückgeben würde. Da dies nicht passiert, gehe ich davon aus, dass die Datei sehr wohl erzeugt wird, aber eben ohne Inhalt.

erhalte nach dem while code folgende Meldung;
program error: code follows on the same line as open brace
r(198);


Kann ich so nicht replizieren, ist aber evtl. auch nicht besonders relevant.

unrecognized command: import
r(199);


Macht mich nervös. Welche Version von Stata hast Du? Dein "Name" impliziert version 11. Sollte dies der Fall sein, wird es komplizierter, weil -import excel- erst in Stata 12 eingeführt wurde.

Ich gehe im folgen von Stata 12 oder höher aus. Mein Lösungsvorschlag war -xls2dta-. Da dies offenbar schwieriger ist, als gedacht, hier das Ganze "manuell" (i.e. das - und etwas mehr - passiert hinter den Coulissen von -xls2dta-):

Code: Alles auswählen
// get the xlsx files
cd "C:\Users\Fabian\Desktop\Master_Thesis\CC_M&A/index xls"
loc xlsxfiles : dir "." file "*.xlsx" ,respect

// change to the target directory
cd "C:\Users\Fabian\Desktop\Master_Thesis\CC_M&A/index dta"
foreach f of loc xlsxfiles {
   import excel `"`f'"' ,clear first
   loc dtaname : subinstr loc f ".xlsx" ".dta"
   sa `"`dtaname'"', replace
}


Der code arbeitet mit local macros und muss daher komplett ausgeführt werden. Siehe auch -help extended_fcn-.

Hoffe, das hilft weiter.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon Stata11 » So 20. Jul 2014, 15:25

Vielen Dank für die umfangreiche Antwort. Bisher habe ich, wie von dir angenommen, Stata 11 verwendet, werde mir allerdings Stata 13 zulegen. Sobald ich es habe, werde ich berichten, ob alles funktioniert!
Stata11
 
Beiträge: 7
Registriert: So 13. Jul 2014, 17:30
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Excel in Stata - speichert nicht

Beitragvon daniel » So 20. Jul 2014, 16:52

Falls Du nicht solange warten willst, lies Dir mal -help insheet- durch. Der code sollte nur kleine Änderungen benötigen.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Nächste

Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste

cron