Umwandlung in CSV-Format

<< Click to Display Table of Contents >>

Navigation:  Anhang > Historisches > Handhabung von ASCII-Daten >

Umwandlung in CSV-Format

Wird die Umwandlung eines spaltenfixierten Datensatzes in CSV-Format gewünscht, empfiehlt sich die Nutzung von CSVOUTFILE.

CSVOUTFILE löst den mittlerweile veralteten CSV-Export mittels ASCIIOUTFILE ab, der im Folgenden als historisches Artefakt beschrieben wird.

Beispiel:

MODIFYCSVNAMES = YES; 
ASCIIOUTFILE DELIMITED = csv.csv; 
ASCIIOUT ALL; 

Für alle aus dem Standardinputfile gelesenen Variablen ist mit dieser Skriptsequenz alles erledigt. Alle Daten aus dem DATAFILE werden auf diese Weise in den CSV-Datensatz übertragen: GESStabs interpretiert ALL so, dass alle Variablen aus dem Standardinput übertragen werden. Variablen, die mit COMPUTE o.ä. berechnet werden, und OPENQ bleiben hierbei außen vor.

Die erste Gruppe kann man durch ein ergänzendes ASCIIOUT-Statement in den Datensatz transferieren. Sei z.B. die Variable Status berechnet worden, dann kann man so deren Inhalt zusätzlich übertragen:

MODIFYCSVNAMES = YES; 

ASCIIOUTFILE DELIMITED = csv.csv; 

ASCIIOUT ALL; 

ASCIIOUT Status = 1; 

Der Standardanfang eines Script, in dem man diese CSV-Datei verarbeitet wird, würde so lauten:

CSVINFILE = csv.csv; 

INCLUDE = var.inc; 

CODEBOOK ; 


OpenQFile

Besonderes Augenmerk muss man den OPENQ widmen, da sie viele unterschiedliche Funktionen erfüllen können. Aus der jeweiligen Funktion ergibt sich, ob, und in welcher Form, man sie im CSV-Datensatz abgelegt sehen möchte.

Ein paar typische Szenarien:

1.Für die offenen Fragen soll ein Codeplan erstellt werden, und zu einem späteren Zeitpunkt sollen diese Codes dem Datensatz und der Auswertung hinzugefügt werden.

2.Der Codeplan liegt bereits vor, und die OPENQ-Files enthalten die Kodierung.

3.Eine Kodierung ist nicht geplant; die Antworten auf die offenen Fragen sollen verbatim tabelliert und in den Datensatz eingefügt werden.

4.Der Kunde weiß es noch nicht.

Ein paar typische Lösungen:

1.Die Struktur, dass die Informationen zu den offenen Antworten in einem separaten File liegen, ist sinnvollerweise beizu-behalten. Die Originaltexte sollen im Datensatz gar nicht auftauchen. Bei der weiteren Arbeit mit dem CSV-File soll die Benutzung der OPENQ-Datei genau so funktionieren wie beim spaltenfixierten Datensatz, d.h. die CSV-Datei enthält die Schlüsselinformation zum Zugriff auf die OpenQ-Datei.

2.Diametral anders: die Ergebnisse der Kodierung sollen als MULTIQ im CSV-File enthalten sein. Das OpenQ-File wird in der Folge nicht mehr benötigt.

3.Die wörtlichen Antworten sollen als ALPHA-Variablen im CSV-File enthalten sein. Die OpenQ-Datei hat ihren Zweck erfüllt und spielt in der Auswertung keine Rolle mehr.

4.Wie 1. Die OpenQ-Datei wird beibehalten. Man sieht den später kommenden Wünschen des Kunden gefasst entgegen.

Ein paar Script-Schnipsel:

Zu 1: Struktur beibehalten

Speichern:

MODIFYCSVNAMES = YES; 

ASCIIOUTFILE DELIMITED = csv.csv; 

ASCIIOUT ALL; 

Lesen:

CSVINFILE = csv.csv; 

KEY OPENQFILE = "$SYSCASE $1"; 

NEWOPENFORMAT = YES; 

OPENQFILE = "<filename>"; 

INCLUDE = var.inc; 

Wie funktioniert das? Das Speichern kennen wir schon. Alle Variablen, die aus dem spaltenfixierten Datensatz gelesen wurden, werden in die CSV-Datei übertragen. Die Variablen zu den offenen Fragen sind nicht enthalten.

Im einlesenden Script wird erst das CSV-File gelesen. Nachdem der Header gelesen ist, sind die dort benannten Variablen bekannt. Für das OPENQFILE muss die Schlüsselvariable bekannt gemacht werden. Bei spaltenfixierten Datensätzen stellt die CASENUMBER-Anweisung die benötigte Information bereit. Diese Information wird intern in einer Variable "$SYSCASE $1" verwaltet. Da sie aus dem ASCII-Datensatz gelesen wurde, wurde sie von ASCIIOUT ALL; mit übertragen, sie steht als Schlüsselvariable zur Verfügung. Daher werden die Inhalte im OpenQ-File richtig zugeordnet. Die Inhalte dieser Datei können nun sowohl verbatim oder auch als Codes verwendet werden. Unten steht die Auswertung einer OPEN-Variablen mit GLOBALOPENASALPHA = YES;

Tabellen können die Nennungen ausweisen

Tabellen können die Nennungen ausweisen

Da die Auswertung der OpenQ-Datei erst in dem Script passiert, das die CSV-Datei auswertet, gibt es bei dieser Konstruktion die volle Freiheit, ob man Codes oder wörtliche Zitate auswerten möchte.

Tabelliert man die Datei ohne GLOBALOPENASALPHA, und wenn die OpenQ-Datei (hoffentlich) richtig kodiert wurde, sieht das Ergebnis so aus:

In der Voreinstellung weisen Tabellen die Codes aus

In der Voreinstellung weisen Tabellen die Codes aus

Zu 2: Kodierung als MULTIQ im CSV-File

Schreiben:

NEWOPENFORMAT = YES; 

OPENQFILE = "<filename>"; 

MODIFYCSVNAMES = YES; 

ASCIIOUTFILE DELIMITED = csv.csv; 

ASCIIOUT ALL; 

M_OPEN 5 = f23_1_97_open; 

Um die kodierten Werte ins CSV-File zu transportieren, muss man die OPEN-Variable in eine Standard-Variable speichern. Das geht am komfortabelsten mit dem M_OPEN-Statement. Es erzeugt eine MULTIQ-Variable mit einem modifizierten Variablennamen, indem "M_" vorangestellt wird. Die Codes der OPEN-Variable werden dann mit LOAD in diese Multi übertragen. So erzeugte Variablen (hier f23_1_97_open) bekommen intern eine Property, die die automatische Übertragung in den CSV-Datensatz bewirkt.

Lesen:

CSVINFILE = csv.csv; 

INCLUDE = var.inc; 

LABELS m_f23_1_97_open =

1 "SUV" 

2 "Coupé" 

3 "Sonstiges" 

Das CSV-File enthält jetzt die MULTIQ, die die Codes aus der OPEN-Variablen aufgenommen hat. Diese MULTIQ muss zur Darstellung mit dem Codeplan versehen werden. Dann kann tabelliert werden.

 Kodierung als MULTIQ in der CSV-Datei

 Kodierung als MULTIQ in der CSV-Datei

Zu 3. OpenQ als ALPHA-Variablen im CSV-File

Schreiben:

GLOBALOPENASALPHA = YES; 

NEWOPENFORMAT = YES; 

OPENQFILE = "<filenamegt;"; 

MODIFYCSVNAMES = YES; 

ASCIIOUTFILE DELIMITED = csv.csv; 

ASCIIOUT ALL; 

Das OpenQ-File wird wörtlich gelesen, wegen GLOBALOPENASALPHA. Variablen mit der Eigenschaft OPENASALPHA werden automatisch in CSV-File übertragen.

Lesen:

CSVINFILE = csv.csv; 

INCLUDE = var.inc; 

Variablen mit der Eigenschaft OPENASALPHA werden automatisch in die CSV-Datei übertragen 

Variablen mit der Eigenschaft OPENASALPHA werden automatisch in die CSV-Datei übertragen 

Zu 4. Nichts Genaues weiß man nicht

Genauso behandeln wie oben unter 1.

Man adressiert aus dem CSV-File heraus das OpenQ-File und hat bei allen Variablen die Freiheit, wie sie zu behandeln sind.


NoQuotesInCSV

Syntax:

NOQUOTESINCSV = [ YES | NO ];

Voreinstellung: NO

Hiermit kann man das Einschließen von Texten in Anführungszeichen in CSV-Dateien (ASCIIOUTFILE DELIMITED) ausschalten.