Variablen-Eigenschaften

<< Click to Display Table of Contents >>

Navigation:  Daten und Datensatz > Variablen in GESStabs > Variableneigenschaften >

Variablen-Eigenschaften

Variablen - genauer gesagt: atomaren SingleQ-Variablen als Grundlage eines jeden Variablen-Konstrukts - können verschiedene Eigenschaften hinzugefügt werden. Diese sind Merkmals-gebend für folgende Gebiete:

SingleQ-Variablen mit offenen Antworttexten

Dateninput und -output

Tabellen-Ausgabe

weiteres


Eigenschaften für Einzelnennungs-Variablen mit offenen Antworttexten

Die Variableneigenschaften OPEN und ALPHA behandeln beide offene Antworttexte in Einzelnennungs-Variablen. Während für OPEN-Variablen intern Codes vergeben werden, wird der Inhalt von ALPHA-Variablen als Zeichenkette interpretiert.

In GESStabs besteht für Variablen mit der Eigenschaft OPEN die Möglichkeit, in den Alpha-Modus zu wechseln oder Codes und Verbatims parallel auszulesen.

Open

Zur Verarbeitung und Kodierung offener Fragen können Variablen im SINGLEQ-Statement als OPEN gekennzeichnet werden.

Syntax:

SINGLEQ <varname> = [ TITLE "Titelstring" ] OPEN;

Als OPEN markierte Einzelnennungs-Variablen enthalten offenen Antworttexte, die extern kodiert und dann importiert werden können.

Klassischerweise wurden Einzelnennungs-Variablen vom Typ OPEN in ein separates Datenfile (OpenQ-File) geschrieben und mittels einer Schlüsselvariable (siehe Key) mit den restlichen Daten verknüpft. OPEN-Variablen können aber in jedem gängigen Daten-Format mitgeführt werden (Ausnahme: spaltenfxierte Datensätze).

Für Möglichkeiten der weitergehenden Verarbeitung (Datenmodifikation) siehe auch COMPUTE LOAD.

Zum Tabellenausdruck kann man den Variablen von Typ OPEN auch VALUELABELS geben.

[Global]AsAlpha, [Global]OpenAsAlpha

Syntax:

ASALPHA <varlist> = [ YES | NO ];
OPENASALPHA <varlist> = [ YES | NO ];

Durch die Eigenschaft ASALPHA kann man GESStabs bei der Auswertung anweisen, Variablen mit der Eigenschaft OPEN für die Ausgabe wie eine ALPHA-Variable zu behandeln; d.h. die codierten Texte werden zu LABELS der OPEN-Variablen.

OPENASALPHA ist ein Synonym für ASALPHA.

Dies kann bei kleinen Antwort-Mengen eine Kodierung ersparen, z.B.:

ASALPHA var1 var27 f23 = yes;

Das globale Pendant ist GLOBALASALPHA bzw. GLOBALOPENASALPHA.

Syntax:

GLOBALASALPHA = [ YES | NO ];
GLOBALOPENASALPHA = [ YES | NO ];

Wenn dieser Schalter auf YES gesetzt wird, erhalten alle in der Folge definierten Variablen die Eigenschaft ASALPHA.

Alpha

Syntax:

ALPHA <varlist> = YES;

und als Schlüsselwort:

SINGLEQ <varname> = [ TITLE "Titelstring" ] ALPHA;

Mit dem Schlüsselwort ALPHA kann man eine Variable als alphanumerisch in der Eingabe definieren. In dem Fall wird das Inputfeld im Datensatz nicht numerisch, sondern als Zeichenkette interpretiert. Die Zeichenketten dürfen beliebig lang sein, alle Zeichen in den Zeichenketten sind signifikant.

Die Variable erhält intern dennoch einen numerischen Wert, der die Reihenfolge des Auftretens unterschiedlicher Zeichenketten wiederspiegelt. Die erste auftretende Zeichenkette wird auf die 1 abgebildet, die zweite auf die 2 etc.

Technisch kann der Mechanismus der ALPHA-Variablen wie folgt beschrieben werden: Bei ALPHA-Variablen erwartet das Programm im Datensatz nicht den Variablenwert, sondern den VALUELABEL-Text. Wird ein Text vorgefunden, der keinem bekannten Label entspricht, wird ein neues Label generiert und ein eigener Variablenwert vergeben. Gibt es für eine Variable noch kein Label, wird mit den neuen Werten bei 1 begonnen. Groß-/Kleinschreibung ist für die Identität der Labels irrelevant (es sei denn, dies wird mittels ALPHACASESENSITIVE anders definiert). Für die Ausgabe wird die Schreibweise verwendet, wie sie beim ersten Auftreten vorgefunden wurde. Mit VALUELABELS definierte Labels gelten als zuerst vorgefundene Schreibweise.

Es ist syntaktisch möglich, auch diese Variablen mit einem RECODE oder COMPUTE zu bearbeiten - dies steht jedoch vollständig in der Verantwortung der/s Benutzers/in.

Soweit die Zeichenketten im Inputfile die üblichen Trennzeichen enthalten, werden beim Ausdruck auch die Umbruchregeln von GESStabs angewendet.

AlphaCaseSensitive

Syntax:

ALPHACASESENSITIVE = [ YES | NO | LOWERCASE | UPPERCASE ];

Default: NO

ALPHACASESENSITIVE ist ein globaler Schalter. Im Default werden die Inhalte von ALPHA-Variablen während des Einlesens "case-insensitive" verglichen. Daraus folgt, dass  im Default z.B. "Ja", "ja" und "JA" als inhaltsgleich angesehen werden. Für die Wiedergabe, z.B. in Tabellen muss GESStabs eine Schreibweise als die "gültige" Schreibweise behandeln. Wenn in einer Datenquelle also z.B. "gisela" und "Gisela" enthalten sind, kann für die Wiedergabe nur entweder "gisela" oder "Gisela" verwendet werden. Die pragmatische Entscheidung aus der Sicht des Softwareentwicklers ist, die Schreibweise des ersten Auftretens der Zeichenfolge zu verwenden. So ist der Default. Das kann im Beispiel das eine oder das andere sein, also auch mal "gisela", was den aufmerksamen Leser stört, weil er dort "Gisela" sehen möchte.  

Mit ALPHACASESENSITIVE = YES; kann man dieses Verhalten ändern. Dann werden nur identische Strings als inhaltsgleich interpretiert, z.B. sind "Ja", "ja" und "JA" dann unterschiedliche Inhalte.

Auf das Beispiel „gisela“ oben angewendet, bedeutet YES, dass in den Tabellen "gisela" und "Gisela" mit eigenen Zählergebnissen auftauchen können.

Man kann auch einstellen, dass alle ALPHA-Variablen beim Einlesen in  Groß- (UPPERCASE) oder Kleinbuchstaben (LOWERCASE) gewandelt werden. Dieser Schalter beeinflusst das Verhalten des Einlesens von DATAFILE, CSVINFILE und SPSSINFILE (siehe In- und Output von Datensätzen). Diese Einstellung gilt für alle ALPHA-Variablen des gesamten Laufs.

Vergleiche hierzu auch IGNORECASEINCOMPARE, das Auswirkungen auf die Behandlung von Groß-/Kleinschreibung bei Textvergleichen hat.

Fehlende Werte in ALPHA-Variablen

Weist eine ALPHA-Variable einen fehlenden Wert auf, wird im Datenoutput per Default "MISSING" eingesetzt. Mit EXPANDMISSINGTEXT kann dieser Text beliebig geändert werden.

Code und/oder Verbatim

[Global]OpenAsAlpha

Verwendung von Texten aus OPEN-Variablen als Verbatims (ALPHA).

Syntax:

OPENASALPHA <varlist> = [ YES | NO ];
GLOBALOPENASALPHA = [ YES | NO ];

Voreinstellung: NO

GLOBALOPENASALPHA gilt für alle nachstehend definierten Variablen mit der Eigenschaft OPEN, bis zum nächsten GLOBALOPENASALPHA-Statement.

Codes und Verbatims parallel auslesen

Syntax:

SINGLEQ <offen_alpha> = OPENASALPHA DATA <offen>)

<offen>       ::= Name der OPEN-Variablen (wie im Daten-Infile)
<offen_alpha> ::= Name der zusätzlich zu erzeugenden Variable mit 
 dem Alpha-Text

Damit man Codes und Text im Skript parallel ansprechen kann, müssen aus einer OPEN-Variablen zwei Variablen mit unterschiedlichen Namen im Skript werden. Dies wird dadurch gelöst, dass man zu jeder Standard-OPEN-Variablen (numerische Kodes) jeweils eine zusätzliche OPEN-Variable erzeugt, die nicht direkt aus dem Datensatz gelesen wird, sondern deren Textinformation aus der Datenzeile der Ursprungsvariablen abgeleitet wird. Damit dies geschehen kann, muss die zusätzliche Variable einen Verweis kennen, aus der Datenzeile welcher Variablen der Text entnommen werden soll. Das Variablen-Statement für die Standard-Variablen ist z.B.:

SINGLEQ offen1 = OPEN;

Die zusätzliche Variable, die den Alpha-Text enthalten soll, wird ebenso mit dem SingleQ-Statement erzeugt. Statt des Schlüsselwortes OPEN steht hier OPENASALPHA, gefolgt vom Datenverweis nach dem Schlüsselwort DATA und dem Variablennamen, wie er im eingelesenen Datensatz steht, z.B.:

SINGLEQ offen1_alpha = OPENASALPHA DATA offen1;

In einem Makro, zur entsprechenden Definition für mehrere Variablen dieser Art, könnte das so aussehen:

#macro #openplusalpha( &name )

SINGLEQ &name = OPEN;

SINGLEQ &name_alpha = OPENASALPHA DATA &name;

#endmacro

#domacro( openplusalpha offen1 offen2 offen3 offen4 offen5 offen6 )

In diesem Beispiel wird davon ausgegangen, dass im Input-Datensatz die Codes und Verbatims der Variablen namens offen1, offen2, offen3, offen4, offen5 und offen6 vorhanden sind. Im DoMacro werden zusätzlich die Variablen namens offen1_alpha bis offen6_alpha erzeugt, die die Verbatims enthalten.


Variablen-Eigenschaften für den Dateninput und -ouput

NoInput

relevant bei Dateninput

Syntax:

NOINPUT <varlist> = [ YES | NO ]; 

GESStabs meldet bei fehlendem Inhalt einer Variablen im Zuge des Dateninputs keinen Fehler, wenn für diese Variable(-nliste) zuvor die Eigenschaft NOINPUT auf YES gesetzt wurde.

Static

relevant bei ergänzendem Dateninput

Syntax:

STATIC <varlist> = [ YES | NO ];

Beim Einlesen eines neuen Datensatzes werden alle Variablen gelöscht. Mit der Eigenschaft STATIC <varname> = YES; kann man eine Variable dazu bringen, dass sie ihren Wert beibehält und fallübergreifend genutzt werden kann.

NoOutput

relevant bei Datenoutput

Syntax:

NOOUTPUT <varlist> = [ YES | NO ];

Bei YES wird der Inhalt der Variablen(-liste) nicht in das Output-File übertragen.

NoSPSS

relevant bei SPSS-Datenoutput

Syntax:

NOSPSS <varlist> = [ YES | NO ]; 

Inhalt der benannten Variablen(-liste) wird bei YES nicht in SPSS-Outputfile übertragen.

StoreAlpha

Syntax:

STOREALPHA <varlist> = [ YES | NO ];

Bei YES wird der Wert einer OPEN-Variable in der Tabelle und im Datensatz-Output nicht als Code, sondern als Zeichenkette (Alpha) ausgegeben.


Variablen-Eigenschaften für den Tabellen-Output

[Global]PrintAll

Diese Optionen steuern die Ausgabe nicht gelabelter Werte.

Syntax:

PRINTALL <varlist> = [ YES | NO ];
GLOBALPRINTALL = [ YES | NO ];

Im Normalfall werden nicht gelabelte Werte gedruckt, und es wird ein Label aus dem numerischen Wert generiert. Nun kann es aber wünschenswert sein, Ausreißerwerte in den Tabellen zu unterdrücken: nicht gelabelte Werte sind ggf. als Ausreißer zu behandeln und sollen nicht gedruckt werden. Dies erreicht man mit PRINTALL <varlist> = NO; bzw. GLOBALPRINTALL = NO;.

GLOBALPRINTALL bezieht sich als Voreinstellung auf alle Variablen, die danach definiert werden und gilt bis zur nächsten GLOBALPRINTALL-Anweisung. Damit wird die globale Voreinstellung zu PRINTALL geändert. PRINTALL bezieht sich auf eine explizite Variablenliste bzw. die zuletzt definierte Variable.

NoExpandat

Syntax:

NOEXPANDAT <varlist> = [ YES | NO ];

Bei YES werden ggfls. gesetzte Mechanismen für den Textersatz (@-Expands) auf die definierte Variablen(-liste) in der Tabellenausgabe nicht angewandt.

StoreAlpha

Siehe oben.


Weitere Variablen-Eigenschaften

ConcatNumToStr

Siehe COMPUTE CONCAT.