numerischen Wert für Funktion aus Variable auslesen

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
Dodo_2
Beiträge: 2
Registriert: 13.05.2019, 14:10

numerischen Wert für Funktion aus Variable auslesen

Beitrag von Dodo_2 »

Hallo an alle,

ich hatte gestern die Frage im Statistik Forum gepostet - eigentlich gehört er eher hier zum SPSS Bereich. Vielleicht kann mir jemand helfen.

Ich arbeite gerade mit SOEP Daten und möchte aus der Personen ID (pershhnr) nur die letzten beiden Zeichen auslesen und in der neuen Variable pershhnr_1 speichern. Ich weiß, dass man mit der Funktion (in diesem Fall):

Compute pershhnr_1=Char.substr(ltrim(string (pershhnr, f9.0)),2,2) zwei Zeichen ab der zweiten Stelle extrahieren kann.

Nun habe ich aber folgendes Problem. Die Personen IDs haben unterschiedliche Längen, demnach kann ich keine "feste" Stelle angeben von der aus die Zeichen extrahiert werden. Sie sind 5 bis 8 Zeichen lang. Mir sind zwei Wege eingefallen mit denen obige Funktion angewendet werden könnte.

(1) In dem man alle PersonenIDs mit führenden Nullen "auffüllt" bis sie 8 Zeichen haben.

(2) In dem man in die obige Funktion statt einer festen Anfangsstelle eine relative einfügt. Hierzu habe ich eine Variable Berechnet, die die Länge der Variable Pershhnr ausgibt. Zieht man von dieser neuen Variable (Persnr_Laenge) nun 2 ab, so erhält man immer die richtige Stelle von der an die letzten zwei Zahlen extrahiert werden sollen.

Wie würde hierfür der Code aussehen- kann man einen numerischen Ausdruck in einer Funktion überhaupt aus einer Variable "auslesen" lassen?

Ich hoffe meine Ausführungen sind verständlich genug, wenn nicht fragt bitte nach.
Vielen Dank für eure Mühe!

VG Julia
dutchie
Beiträge: 2734
Registriert: 01.02.2018, 10:45

Re: numerischen Wert für Funktion aus Variable auslesen

Beitrag von dutchie »

hallo
du meinst so was in der art:

compute x = 3.
COMPUTE blabla = SUBSTR(VAR00002, x ,2) .
EXECUTE .

bei mir geht das nicht..

vielleicht wenn:
du mehrere substr befehle hintereinander schaltest in abhängigkeit
von der länge

if LENGTH(RTRIM(strAusdr))= 5.
COMPUTE blabla = SUBSTR(VAR00002, 4 ,2)

so in etwa
gruß
dutchie
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