Fälle laufend nummerieren, zwischendurch wieder bei 1 anfang

Alles rund um SPSS Syntax und Programmierung.

Fälle laufend nummerieren, zwischendurch wieder bei 1 anfang

Beitragvon miner » Mo 24. Okt 2016, 16:47

Fälle laufend nummerieren, zwischendurch wieder bei 1 anfangen.

Hi,

ich habe einen komplexen Datensatz. Es gibt pro Untersuchungseinheit mehrere Messungen. Diese sind in SPSS zeilenweise abgetragen, und müssen somit transponiert werden. Das ist soweit kein Problem, mache ich damit:

Code: Alles auswählen
CASESTOVARS
  /ID=id_variable
  /INDEX=indexvariable
  /GROUPBY=VARIABLE.


id_variable ist im Datensatz vorhanden, das ist einfach nur die Kennung der Teilnehmer. Soweit, so gut. Indexvariable gibt es nicht, und muss somit erst berechnet werden.

Eine fortlaufende Durchnummerierung der Fälle wäre einfach, das ginge so:

Code: Alles auswählen
COMPUTE Fallzahl = $casenum.


Der Index soll jedoch angeben, die wievielte Messwiederholung eine Variable enthält, also z.B. die n-te. Demnach nützt es nichts, einfach laufend durchzunummerieren. Da der Index zwischendurch wieder bei 1 anfangen muss. Zu allem Überschfluss ist die Anzahl de Messwiederholungen nicht bei allen Fällen gleich. Ein Beispiel siehe unten. id_variable habe ich, index_variable muss berechnet werden.

Code: Alles auswählen
id_variable     index_variable
111                1
111                2
111                3
111                4
222                1
222                2
222                3
...                  ...



Notfalls ginge es mit einer if-Anweisung, wenn man sich vorher die ID mit einer Häufigkeitstabelle ausgeben lässt. Das wäre dann aber ziemlich umständlich, da es recht viele Fälle gibt. In Excel eine Vorlage für die Umcodierungen zu erstellen (u.a. mit Verketten() ) macht es nur ein bisschen einfacher.

Kennt nicht jemand eine bessere Möglichkeit?

Danke und beste Grüße!
Miner
miner
 
Beiträge: 86
Registriert: Do 12. Sep 2013, 16:54
Danke gegeben: 6
Danke bekommen: 0 mal in 0 Post

Re: Fälle laufend nummerieren, zwischendurch wieder bei 1 an

Beitragvon ponderstibbons » Di 25. Okt 2016, 09:56

COMPUTE hilfsvariable = $casenum .
Danach "Rangfolge bilden" für hilfsvariable , mit id als break-Variable.

Alternativ, sofern die Fälle wie dargestellt geordnet sind:
IF(id ne LAG(id)) nummer = 1.
EXECUTE .
IF( (id = LAG(id)) AND missing(nummer) ) nummer = LAG(nummer) + 1.
EXECUTE .

HTH

PonderStibbons
ponderstibbons
 
Beiträge: 2481
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 1
Danke bekommen: 256 mal in 255 Posts

Re: Fälle laufend nummerieren, zwischendurch wieder bei 1 an

Beitragvon miner » Di 25. Okt 2016, 23:09

ponderstibbons,

Herzlichen Dank für die Syntax! :)

Ich probiere das aus! :)

Grüße,
Miner
miner
 
Beiträge: 86
Registriert: Do 12. Sep 2013, 16:54
Danke gegeben: 6
Danke bekommen: 0 mal in 0 Post


Zurück zu SPSS Syntax

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 2 Gäste

cron