Dezimaloptionen

<< Click to Display Table of Contents >>

Navigation:  Datenauswertung > Tabellengestaltung > Formatierung >

Dezimaloptionen

Die gewünschte Anzahl dargestellter Dezimalstellen kann mit DECIMALS variablenspezifisch angegeben werden. Für Prozentwerte gibt es DECIMALPERCENT, für bereits bestehende Variablen SETCEDIMALS.

Auch wenn nur die gewünschte Dezimalstellenanzahl in der Druckausgabe angezeigt wird, rechnet GESStabs intern mit den vollständigen Zahlenwerten. Das kann zu Diskrepanzen führen - zur Handhabung dessen dient TRUNCATEDECIMALS.


Decimals

Den Variablenwerten kann für die Datensatzablage oder die Ausgabe als Label (sofern es für Zahlenwerte keinen Labeltext gibt) eine Dezimalstellenanzahl zugeordnet werden. Wird ebenso für die Ausgabe von MEAN oder SUM verwendet.

Syntax:

DECIMALS = <number>;

Default: DECIMALS = 0;

DECIMALS setzt eine Voreinstellung für alle in der Folge im Skript erzeugten Variablen.

Voraussetzung für die Tabellenausgabe: PRINTALL = YES;

Beispiel:

DECIMALS = 2;

Beachte: DECIMALS ist keine Einstellung für CELLELEMENTS.


DecimalPercent

Definiert die Anzahl der Dezimalstellen der Prozentzahlen in Kreuztabellen.

Syntax:

DECIMALPERCENT = <number>;

Voreinstellung: DECIMALPERCENT = 0;

Eine einmal gewählte DECIMALPERCENT-Einstellung gilt für alle danach angeforderten Tabellen, bis eine neue DECIMALPERCENT-Anweisung folgt.

Beispiel:

DECIMALPERCENT = 1;


SetDecimals

SETDECIMALS dient der expliziten Setzung des Dezimalpunkts für die Datenausgabe oder die Ausgabe als Label (sofern es für Zahlenwerte keinen Labeltext gibt) bei bereits bestehenden Variablen.

Syntax:

SETDECIMALS < Varlist > = <number>;

Beachte: SETDECIMALS ist keine Einstellung für CELLELEMENTS.


TruncatedDecimals

Gleicht die Diskrepanz zwischen genauem Zahlenwert und gerundeter Darstellungs aus.

Syntax:

TRUNCATEDECIMALS <varlist> = <number>;

<number> ::= -9 .. 9;

GESStabs zählt ja einfach alles, auch die Häufigkeiten beliebiger FLOAT-Werte. Das ist oft praktisch, kann aber auch lästig sein. Wenn man Häufigkeitszählungen über kontinuierliche Variablen macht, kommt es vor, dass mehrfach derselbe gerundete Wert mit ggf. unterschiedlichen Häufigkeiten dargestellt wird, wobei die genauen ausgezählten Werte wegen der Rundung bei der Ausgabe gar nicht mehr ersichtlich sind. Die interne Zählung ist dann differenzierter als die Ergebnisausgabe. Z.B. würden bei einer Darstellung mit einer Nachkommastelle die Werte 0,0238, 0,0278, 0,0385, 0,0417, 0,0426, 0,0435 und 0,0455 alle auf 0,0 gerundet, in der Tabelle stünde dann 7 mal 0,0 mit der Häufigkeit 1.

Um diese Diskrepanz zwischen der internen Genauigkeit und der Darstellung zu beseitigen, kann man anstelle von SETDECIMALS das Schlüsselwort TRUNCATEDECIMALS verwenden. Dann wird während des Zählens die zu zählende Variable auf den passenden Ausgabewert gerundet. Im oben angeführten Beispiel (TRUNCATEDECIMALS =1;) stünde dann der Zahlenwert 0.0 mit der absoluten Häufigkeit 7 in der Tabelle.

Wenn man mit einer solchen Variablen weitere Berechnungen anstellt, ist es natürlich nicht wünschenswert, dass der ungenauere gerundete Wert in diese eingeht. Im Beispiel oben ist 0,0417 eben nicht 0.0 wie in der Tabellenausgabe. TRUNCATEDECIMALS verändert die Variableninhalte deshalb nicht dauerhaft, sondern nur im Zählvorgang in CODEBOOK und TABLE.  In angeforderte Statistiken wie MEAN oder VARIANCE geht der ungerundete Wert ein.

Das Verfahren funktioniert auch mit negativen Werten von '<number>'. Man kann das Dezimalkomma auch nach links verschieben.

TRUNCATEDECIMALS V1 V2 V3 = -2;

rundet auf 100er.

Anmerkungen:

1.Es wird empfohlen, SETDECIMALS und TRUNCATEDECIMALS nicht beides auf eine Variable anzuwenden.

2.Ein Teil der statistischen Kennzahlen wie MEDIAN oder Perzentile geht allerdings auch auf Häufigkeitsauszählungen zurück. Diese sind zwar intern und es ist nicht störend für den Tabellenleser, bei sehr großen Fallzahlen und hoher interner Differenzierung der Daten kann dies in der Performance spürbar werden, an diesen Stellen greift TRUNCATEDECIMALS aber nicht ein.