Ids in Phasen unterteilen

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
stephi1011
Beiträge: 22
Registriert: 16.05.2011, 10:26

Ids in Phasen unterteilen

Beitrag von stephi1011 »

Hallo Zusammen,

ich habe noch einmal ein Anliegen.
Ich möchte in meinem Datensatz den Ids Phasen vergeben

z.B.
111 1
111 2
111 3
111 4

222 1
222 2
222 3
222 4
222 5

Ich kenn zwar den Befehl den Ids laufende Nummern zu vergeben (COMPUTE lfdnr=§casenum.), aber ich möchte keine laufende Nummern, sondern Phasenunterteilt, wobei die Phasen je nach ID zwischen 4 und 9 liegen.

Ich bin über jede Idee dankbar, :D

Liebe Grüße,
Stephi
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

naja, die Idee bestünde darin, erst einmal den Datensatz nach der ID durchzusortieren und dann mit Python eine Zählschleife von 1 an durchlaufen zu lassen, bis die ID sich ändert um dann wieder bei 1 anzufangen.

Gruß
drfg2008
Generalist
Beiträge: 1733
Registriert: 11.03.2010, 22:28

Beitrag von Generalist »

Auch dieses Problem ist leider wieder wenig verständlich beschrieben und
dargestellt, daher muss ich raten, was gemeint sein könnte.

****Nach Id sortieren .
****Dann: Erstes Vorkommen von Id bekommt die Zahl 1.

IF(Id ne LAG(Id) ) nummer= 1 .
ECECUTE .

****Dann: Zähle bei gleichen Ids immer eins hoch:

IF(Id = LAG(Id) AND missing(nummer)) nummer=LAG(nummer)+1 .
ECECUTE .
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

ja, das ist natürlich viel einfacher, wobei ich execute lieber mit x schreiben würde (und die erste ID nicht durchgezählt wird)

das zählt noch die ersten Zeilen aus:

Code: Alles auswählen

IF  ($CASENUM = 1) nummer=1.
IF (Id ne LAG(Id) ) nummer= 1 .
IF (Id = LAG(Id) AND missing(nummer)) nummer=LAG(nummer)+1 .
EXECUTE .


Gruß
drfg2008
stephi1011
Beiträge: 22
Registriert: 16.05.2011, 10:26

Beitrag von stephi1011 »

Super ganz vielen Dank-genau das erklärt was ich gesucht habe:)
stephi1011
Beiträge: 22
Registriert: 16.05.2011, 10:26

eine neue Frage

Beitrag von stephi1011 »

Ja es schleißt sich gleich noch ein "Problem" an.
Nachdem ich nun für jede ID die verschiedenen Phasen angezeigt bekomme. Also so

ID Phase Gewicht
111 1 55
111 2 52
111 3 51
111 4 49

möchte ich nun eine Variable erstellen, die mir anzeigt, ob von Phase 1 zu Phase 4 mehr als 5 kg abgenommen wurden.
Ich habe auch schon dazu gelernt und bislnag sieht meine syntax folgendermaßen aus:

if (Phase eq 1) Gewicht_1=Gewicht.
create Gewicht_5=lag (Gewicht_1,1).

if (Phase eq 4) gew_red=Gewicht_4-Gewicht_1.

if (gew_red gt 5) red5=1.


Aber es klappt nicht, sieht hier jemand den Fehler?

Lg stephi
drfg2008
Beiträge: 2391
Registriert: 06.02.2011, 19:58

re

Beitrag von drfg2008 »

sieht hier jemand den Fehler?
ja stephi, es heißt schließt nicht schleißt und bislang und nicht bislnag ;-)


Gruß


PS Ich würde das nicht zeilenweise, sondern spaltenweise aufbauen -> varstocases / casetovars
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