Erste Syntax-Gehversuche / Berechnen neuer Variable

Alles rund um SPSS Syntax und Programmierung.

Erste Syntax-Gehversuche / Berechnen neuer Variable

Beitragvon Wudasa » Mi 10. Okt 2012, 11:32

Ich versuche derzeit bei einem großen Datensatz ein paar Reduzierungen vorzunehmen. Ich habe aber auch noch nie Berührungen mit Programmiersprache gehabt und bin auch in SPSS allgemein eher ein Anfänger. Um mir das Ganze zu erleichtern habe ich jetzt versucht auf eine Syntax zu kommen...Aber im Bühl und im Netz habe ich bisher keine Antwort erhalten und mir raucht der Kopf (und eine Lösung muss her...)

Und zwar habe ich eine Reihe von Medikamenten bzw. Wirkstoffklassen. Bei der Eingabe hat es sich der Betreffende einfach gemacht. Wenn ein Patient keine Medikamente bekommen hat, bekam die Variable "Med_allg" eine 0. Wenn ein Patient ein Medikament bekommt, waren in den entsprechenden Medikamentvariablen eine 1.
Wir haben *sehr viele* verschiedene Wirkstoffklassen eingetragen. Da ich jetzt nicht durchgehen und in jedem anderen Feldchen eigenhändig eine 0 eintragen möchte, hier mein "ursprünglicher" Lösungen mit der Bitte um eine kleine Hilfe in Sachen Syntax:

Transformieren > Variable neu Berechnen > Med_allg = ANY(Wirkstoffklasse,1)

Das hat zu einem zumindest korrekten Ergebnis geführt. Aber Wirkstoffklassen sind bekanntlich doof und lang zu schreiben und allein die Rechtschreibfehler, die man da so machen kann....Also eine Syntax.
Meine Idee war so was wie

COMPUTE Med_allg = (wirkstoffklasseA,1) OR (wirkstoffklasseB,1).


Ich glaube mit dem "OR" liege ich ganz richtig. Mit dem Rest nicht. Jedenfalls kam kein Ergebnis dabei raus.

Andersherum hätte ich es aber auch ganz gerne. D.h. in jeder Wirkstoffklasse eine 0, sofern in Med_allg bereits eine 0 steht.


Ist das irgendwie möglich? Ich möchte noch nicht mal zwingend eine fertige Syntax haben. Vielleicht würden mir auch nur die Programmiergrammatik und die entsprechenden Befehle bei dieser Aufgabenstellung schon helfen.


DANKE für die Hilfe,

Wu
Wudasa
 
Beiträge: 8
Registriert: Do 20. Sep 2012, 13:50
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Erste Syntax-Gehversuche / Berechnen neuer Variable

Beitragvon Wudasa » Mi 10. Okt 2012, 12:00

Ah. :)
Mir fehlt zwar nach wie vor der Weg, wie ich alle Klassen zu einem 0 mache, wenn med_allg 0 ist....aber für den Weg anders herum habe ich eine Lösung.
Lösung: Im Dialogfenster zum neuen Berechnen von Daten gehe ich jetzt einfach wie folgt vor:

ANY(wirkstoffklasse,1) | ANY(wirkstoffklasse,2) | etc.


Eine Syntax wäre trotzdem schön. Zum üben.
Wudasa
 
Beiträge: 8
Registriert: Do 20. Sep 2012, 13:50
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Erste Syntax-Gehversuche / Berechnen neuer Variable

Beitragvon Moeter » Mi 10. Okt 2012, 12:11

Ich weiß ja nicht, wie viele Wirkstoffklassen du hast, aber wenn die Anzahl überschaubar ist, wäre in der Syntax eine IF-Beziehung sinnvoll:

Code: Alles auswählen
IF (WirkstoffklasseA=1 OR WirkstoffklasseB=1) Med_allg=1.


Das bedeutet dann aber auch, dass bei Med_allg eine 1 eingetragen wird, wenn bei Wirkstoffklasse A und B eine 1 steht (Nicht, dass dann da eine 2 stehen sollte).

Andersherum kann man das natürlich auch machen:

Code: Alles auswählen
IF (Med_allg=0) WirkstoffklasseA=0.

Code: Alles auswählen
IF (Med_allg=0) WirkstoffklasseB=0.


Wichtig ist natürlich auch der Execute-Befehl nach jeder Befehlsgruppe.
Moeter
 
Beiträge: 4
Registriert: Mi 10. Okt 2012, 08:45
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Erste Syntax-Gehversuche / Berechnen neuer Variable

Beitragvon Wudasa » Mi 10. Okt 2012, 12:47

Dankeschön! Das ist in etwa das, was ich wissen wollte. Die Anzahl der Klassen ist alles andere als überschaubar, aber wenn der eine faul ist, muss es der andere wohl ausbügeln. Es ist immer noch viel weniger Arbeit, als in jedes Feld einzeln eine 0 einzutragen und sich dabei womöglich zu vertippen. :)
Außerdem kann ich das jetzt ja auch noch in Zukunft anwenden *Syntax speicher*
Wudasa
 
Beiträge: 8
Registriert: Do 20. Sep 2012, 13:50
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Erste Syntax-Gehversuche / Berechnen neuer Variable

Beitragvon Wudasa » Mi 17. Okt 2012, 12:06

Selber Datensatz, ähnliches Problem:

Ich habe folgende Syntax eingegeben. Aussage: Wenn "Med_allg" auf 1 steht und WirkstoffA keinen Wert hat, dann stelle alle Felder von Wirkstoff A auf 0, sofern nicht schon eine 1 da steht.
Syntax:


IF (Med_allg=1 & ~ WirkstoffA=1) WirkstoffA=0.
EXECUTE.

Es passiert nix. :/


EDIT: Schon gelöst. Wenn WirkstoffA nur den systembedingten Fehlwert (".") hat, dann gibt es auch kein ungleich 1. Das bedeutet jetzt aber für mich, dass ich doch für jeden Systembedingten fehlenden Wert eine 0 per Hand einsetzen muss....:/
Wudasa
 
Beiträge: 8
Registriert: Do 20. Sep 2012, 13:50
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu SPSS Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste