Dictionary mit verschiedenen Satzarten

Fragen zu Stata Syntax und Do-Files.

Dictionary mit verschiedenen Satzarten

Beitragvon mangel76 » Do 9. Jan 2014, 17:17

Hallo liebe STATA-User,

ich hab da mal ne Frage zu Dictionarys. Ich habe folgendes Problem: wir haben Datenfiles in Textform, die keine einheitliche Struktur haben. Vielmehr bestimmen die ersten beiden Spalten die Satzart. Da gibt es zum Beispiel die Satzart S1, die Daten über eine bestimmte Maßnahme beinhaltet. Eine andere Satzart, S2, enthält Informationen zu den Betroffenen dieser Maßnahmen. Diese Daten sollen in STATA eingelesen und dann verknüpft werden. Die Variablen 3 bis 5 sind id-Variablen und in allen Satzarten gleich, so dass dann zum Bsp. die Personen- und Maßnahmendaten kombiniert werden können.

Bisher läuft das Einlesen über ein SPSS-Programm. Da gibt es die Möglichkeit, Datensatzdefinitionen entsprechend der Satzart zu machen. Das sieht in etwa so aus:
FILE TYPE MIXED FILE =Datensatz
RECORD = KNSA 1-2(A) .
RECORD TYPE 'S1' .
DATA LIST notable /jahr 3-6 id1 7-9 id2 10-11 id3(a14) var11(A1) var12 50-53
var13 54 (...).
RECORD TYPE 'S2' .
DATA LIST notable /jahr 3-6 id1 7-9 id2 10-11 id3(a14) var21 20-21 var22 52-53
var23 78 (...).
RECORD TYPE 'S3' .
DATA LIST notable /jahr 3-6 id1 7-9 id2 10-11 id3(a14) var31(A3) var32 27-29
var33 58-60 (...).
END FILE TYPE .

Es werden also zunächst die beiden ersten Stellen einer Zeile eingelesen und je nach Ausprägung wird der Rest dann gemäß der entsprechenden Definition gelesen. Gibt es eine solche Möglichkeit auch bei STATA? Google konnte mir da auch nicht weiterhelfen, ist wohl ein eher seltenes Problem.

Vielen Dank
mangel76
mangel76
 
Beiträge: 39
Registriert: Do 9. Jan 2014, 16:44
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Dictionary mit verschiedenen Satzarten

Beitragvon daniel » Fr 10. Jan 2014, 12:24

ist wohl ein eher seltenes Problem.


Und leider nicht ganz leicht nachvollziehbar, insb. wenn man mit SPSS nicht allzu vertraut ist. Ich bin bisher allerdings noch üner kein Problem gestoplert, dass SPSS lösen konnte und Stata nicht. Allerdings mag der Aufwadn größer sein. Daher empfiehlt es sich natürlich immer die Frage nach der Effizienz zu stellen. Wenn der SPSS code funktioniert, wesshalb dann auf Stata umsteigen? Man könnte die files in SPSS einlesen, als Stata (release 8) files exportieren und die datensaätze dann in Stata zusammenführen und weitere Analysen machen.

Das gesagt, kann ich nur sehr unspezifische Tipps geben, aber vieleicht hilft

Code: Alles auswählen
.h import
.h infile


oder noch allgemeiner

Code: Alles auswählen
.h file
.h string functions


ASCII Text Dateien zu lesen ist nämlich mit Stata nicht sonderlich schwer. Nichtsdestotrotz müsset man wohl selbst einen code schreiben. Wenn ein auszug der Dateien verfügbar wäre, wären gezieltere Hinweise möglich (sofern ich Zeit habe natürlich).
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: Dictionary mit verschiedenen Satzarten

Beitragvon mangel76 » Fr 10. Jan 2014, 15:08

Hallo Daniel,

erstmal danke für deine Antwort. Mein Problem ist SPSS. Ich komme von Stata und bin hier regelmäßig am verzweifeln hinsichtlich der Unzulänglichkeiten von SPSS. Daher habe ich angeregt, doch mal Stata zu probieren.

Der Umweg über SPSS hat zwei Nachteile. 1. SPSS ist viel zu langsam. Ich hab mal zum Vergleich dieselbe Analyse in SPSS und Stata laufen lassen und die hat Stata mit 15 Sek. zu 2 Min. 45 Sek. gewonnen. Und das Einlesen der Daten dauert besonders lange. Gut, es muss nur einmal pro Jahr gemacht werden, aber für ungefähr 30 Datensätze (ich bin bei einem Verband beschäftigt und die Textdateien sind die Datenlieferungen unserer Mitglieder).
2. Wenn ich die fertige Datei als Stata-Datei abspeichere, wird die Datei riesengroß. SPSS verwendet anscheinend für jede Variable den größtmöglichen Typ beim abspeichern. Bei kleineren Dateien kein Problem, einlesen, komprimieren und wieder speichern. Aber wir haben hier auch sehr große Dateien, die in SPSS um die 800 MB haben, als Stata-Datei sind das dann 3,5 GB. Und a wir hier aus welchen Gründen auch immer nur 32bit-Windows mit 4GB RAM nutzen, kann ich diese Datei nicht in Stata öffnen. Bliebe nur die Möglichkeit, einzelne Variablen zu öffnen, zu komprimieren und abzuspeichern und am Ende alles wieder zusammenzusetzen. Ich habe auch usespss versucht, aber auch das funktioniert nur selten, warum auch immer.

Einen Auszug der Daten kann ich leider nicht liefern, alles geheim ;). Aber man muss sich das so vorstellen:
-Stellen 1-2 enthalten die Satzart, da gibt es Grunddaten (SG), Jahresdaten (SM) usw. Wenn das eine Industriestatistik wäre, stände in den Grunddaten z.B. Name des Unternehmens, Sitz, Rechtsform, Inhaber etc. In den Jahresdaten stehen dann das Jahr, für das gemeldet wird, der Umsatz, die Lohnkosten, Abschreibungen, Investitionen, alles für das betreffende Jahr. Damit werden die Grunddaten nur einmal geliefert und die veränderlichen Werte jedes Jahr.
- D.h. das sich die Informationen und Variablen hinter der 2. Stelle je nach Satzart unterscheiden. In SPSS kann man das eben durch dieses FILE TYPE MIXED FILE angeben. Ich hab aber noch nicht herausgefunden, ob und wie so etwas mit Stata geht.

Ich lese grade bei dir "string functions", vielleicht wäre das ein Ansatz. Ich lese erstmal alles als String ein und bilde daraus dann die entsprechenden Variablen mit den string functions.

Naja, ich werd mir mal noch weiter Gedanken machen.
mangel76
 
Beiträge: 39
Registriert: Do 9. Jan 2014, 16:44
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

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