Extraktion der ersten Ziffer

Fragen und Diskussionen rund um die Arbeit mit SPSS. Für allgemeine Statistik-Themen, die nicht mit SPSS zusammenhängen, bitte das Statistik-Forum nutzen.
Antworten
Borusse1900
Beiträge: 1
Registriert: 03.07.2014, 17:33

Extraktion der ersten Ziffer

Beitrag von Borusse1900 »

Hallo zusammen!

Auch ich habe mit SPSS ein kleines/großes Problem im Rahmen einer Datenauswertung in Anwendung der sog. Ziffernanalyse. Was ich eigentlich machen möchte, ist die Häufigkeiten der Anfangsziffern verschiedener Variablen zu bestimmen. Enthält eine Variable also z.B. die Werte 1, 22, 27, 300, 789, 541, so hätte ich gerne eine Häufigkeitstabelle mit dem Inhalt 1x1, 2x3, 1x3, 1x7 und 1x5.

Nachdem ich mich etwas in das Programm eingearbeitet habe, hatte ich mir auch einen Ansatz für das Problem überlegt. Um zwar habe ich für jede Variable folgenden Befehl ausgeführt:

STRING abcd_1 (A10).
COMPUTE abcd_1=CHAR.SUBSTR(STRING(ABS(abcd),F10.2),1,1).
VARIABLE LABELS abcd_1 'XYZ'.

Ich wandle also zunächst den Betrag der Zahl (numerischer Ausdruck) in eine Zeichenkette und greife in dieser auf die erste Stelle zu.

Nun musste ich leider feststellen, dass dieser Befehl nicht zuverlässig funktioniert und die neue Variable abcd_1 in einer Vielzahl der Fälle nur einen Bruchteil an ersten Ziffern enthält. Kann mir vllt. jemand von euch hier weiterhelfen? Wo kann das Problem liegen?

Ich habe bereits herausgefunden, dass die Konvertierung in den String problemlos verläuft. Also scheint es lediglich ein Problem mit dem Befehl char.substr(...) zu geben, welcher die Stelle der Zeichenkette scheinbar nicht korrekt extrahiert.

Ist die Vorgehensweise in der Form überhaupt nötig, oder gibt es hier auch einfachere Varianten, die vllt. zuverlässiger funktionieren? Für jeden Tipp bin ich unendlich dankbar!
dani42
Beiträge: 94
Registriert: 31.07.2014, 18:08

Beitrag von dani42 »

Hallo,

folgende Syntax müsste den Zweck erfüllen:

Code: Alles auswählen

STRING abcd_1 (A10).
compute abcd_1=CHAR.SUBSTR(ltrim(string(abcd, f10.0)),1,1).
compute zahl1=number(abcd_1, f1.0).
exe.
fre zahl1.
Wesentlich ist die Funktion "LTRIM", denn bei der Umwandlung von Daten in Strings oder umgekehrt passieren manchmal unerwünschte Digen wie dass vor oder nach den Inhalten noch Leerzeichen eingefügt werden (was mit der Länge der Inhalte und der Variablendefinitionen zu tun hat). Manchmal braucht man auch "RTRIM".

Gruß,
Daniel
Anzeige:Statistik und SPSS: Die besten Bücher
Als Buch oder E-Book - Jetzt bestellen
spss datenanalyse
SPSS - Moderne Datenanalyse - Jetzt bestellen!
statistik datenanalyse
Statistik - Der Weg zur Datenanalyse - Jetzt bestellen!
Antworten