Stringvariable: kommagetrennte Textinhalte extrahieren

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
paede
Beiträge: 32
Registriert: 05.10.2010, 15:09

Stringvariable: kommagetrennte Textinhalte extrahieren

Beitrag von paede »

Hallo zusammen,

Ich würde gerne folgendes machen:

Code: Alles auswählen

Var1
a, b, c, d
soll werden zu

Code: Alles auswählen

Var1          Var2          Var3          Var4
 a              b             c             d
Wie löst man so etwas per Syntax?
Alle betroffenen Variablen sind Stringvariablen.

Vielen Dank für eure Hilfe.


MfG
Generalist
Beiträge: 1733
Registriert: 11.03.2010, 22:28

Beitrag von Generalist »

Die neuen String-Variablen definieren und dann berechnen:

var1=substr(ausgangsvariable,1,1).

var2=substr(ausgangsvariable,3,1).

etc.
paede
Beiträge: 32
Registriert: 05.10.2010, 15:09

Beitrag von paede »

Generalist, vielen Dank für die rasche Antwort.

Ich habe vergessen zu erwähnen, dass "a, b, c, d" nur stellvertretend für ganze Wörter stehen, die unterschiedlich lang sind. Die Position, aus der mit SUBSTR extrahiert werden soll ist demzufolge variabel, jedoch ist das Komma immer das Trennzeichen zwischen den aufzutrennenden Wörtern.

Gibt es eine Möglichkeit die Syntax so zu gestalten, dass immer nach dem Komma (an welcher Position das auch stehen mag) sukzessive getrennt wird? Also einmal extraktion des Wortes vor Komma1, dann dessen vor Komma2 etc etc. und alle diese Wörter in eine separate Stringvariable.

Was ich schon probiert habe, ist den ganzen Datensatz als .csv- oder .dat-File abzuspeichern und dann beim Re-Import in SPSS "," als delimiter von Variablen anzugeben. Leider hat dies aus mir unerklärlichen Gründen nicht funktioniert - alle "nachkomma"-Werte gingen einfach verloren.


MfG
Generalist
Beiträge: 1733
Registriert: 11.03.2010, 22:28

Beitrag von Generalist »

Vielleicht irgendwas in der Richtung (ungetestet):

****Ermittle Position des ersten Kommas in der Ausgangsvariable ausgvar

COMPUTE komma1 = INDEX(ausgvar,",") .

***Bilde neue Variable aus dem Teil der Ausgangsvariable bis vor das erste Komma.
***Notwendige Länge mir unbekannt, hier bspw. 16

STRING variable1(A16) .
COMPUTE variable1 = SUBSTR(ausgvar,1,komma1-1) .

***Bilde gekürzte Ausgangvariable, ohne den ersten Teilstring

STRING ausgvar2(A32) .
COMPUTE ausgvar2 = SUBSTR(ausgvar,komma1+1) .

***Definiere Länge des ersten Teilstrings der gekürzten Variable

COMPUTE komma2 = INDEX(ausgvar2,",") .

und so weiter dann entsprechend wie oben.
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

mit Python geht das ganz gut, ist aber aufwändig.

Mit Python lassen sich die genauen Positionen der Komma einlesen und während der Laufzeit speichern. Dann über Program / End Program so vorgehen, wie Generalist das beschrieben hat.

Gruß
drfg2008
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