Seite 1 von 1

Kniffliche Variablenerstellung. Hilfe!!

BeitragVerfasst: So 22. Okt 2017, 13:32
von AloeArbor
Hallo!

In meiner Arbeit geht es um Persönlichkeitstypen. Es gibt sechs Persönlichkeitstypen und jeder Proband wird mit jedem Persönlichkeitstypen verglichen. Je ähnlicher er also einem Persönlichkeitstypen ist, desto höher ist der Wert in der entsprechenden Persönlichkeitstyp-Variable. Nun möchte ich neue Variablen bilden. In diesen neuen Variablen sollen für jeden Probanden dargestellt werden, bei welchem Persönlichkeitstypen er den größten Wert erzielt.

Ich bin ziemlich verzweifelt, habe es über den if-Befehl und auch über Rangtransformation (das war wohl völlig falsch) versucht. Hat hier jemand eine Idee, wie ich solche Variablen erstellen könnte? Für Hilfe und Tipps bin ich sehr dankbar!

Liebe Grüße

Re: Kniffliche Variablenerstellung. Hilfe!!

BeitragVerfasst: So 22. Okt 2017, 16:06
von strukturmarionette
Hi,

habe es über den if-Befehl

- versuche es zunächst über die SPSS Dialogfelder

Gruß
S.

Re: Kniffliche Variablenerstellung. Hilfe!!

BeitragVerfasst: Mo 23. Okt 2017, 11:52
von ponderstibbons
In diesen neuen Variablen sollen für jeden Probanden dargestellt werden, bei welchem Persönlichkeitstypen er den größten Wert erzielt.

Es geht aus dem Beitrag nicht hervor, ob mehrere Typen zugleich den höchsten Wert erzielen können. Ich gehen einmal davon aus, dass dies möglich ist. In der nachfolgenden Syntax wird daher unter anderem gezählt, wie viele Persönlichkeitstypen den höchsten Wert haben. Es wird danach nur für die Fälle der Persönlichkeitswert mit dem höchsten Wert ermittelt, wo nicht mehr als 1 Persönlichkeitstyp den höchsten Wert hat.

Die folgende Syntax benennt die 6 Persönlichkeitstyp-Variablen mit perstyp1 bis perstyp6. Die Namen müssten für die eigene Rechnung entsprechend geändert werden.

COMPUTE persmax = MAX(perstyp1 to perstyp6) .
VAR LAB persmax "Höchster Wert über 6 Persönlichkeitstypen" .
EXECUTE .

****** .

NUMERIC anz.persmax (F8.0) .
COMPUTE anz.persmax =0.
VAR LAB anz.persmax "Anzahl Persönlichkeitstypen, die den höchsten Wert aufweisen" .
EXECUTE.

VECTOR anz.persmax = perstyp1 to perstyp6 .
LOOP #k = 1 to 6 .
IF(anz.persmax(#k) = persmax) anz.persmax = anz.persmax + 1 .
END LOOP.
EXECUTE .

***** .

NUMERIC perstyp.max (F8.0) .
COMPUTE perstyp.max=0.
VAR LAB perstyp.max "Persönlichkeitstyp mit dem höchsten Wert".
EXECUTE.

VAL LAB perstyp.max
-8 "Mehr als 1 Typ hat Maximalwert" .

VECTOR persotypen = perstyp1 to perstyp6 .
LOOP #k = 1 to 6 .
DO IF (persotypen(#k) = MAX(persmax) AND anz.persmax = 1).
COMPUTE perstyp.max = #k .
ELSE IF(anz.persmax > 1).
COMPUTE perstyp.max = -8 .
END IF.
END LOOP.
EXECUTE .


Ich bin ziemlich verzweifelt,

Ja, das zu betonen ist so ein modernes Phänomen... http://tinyurl.com/y6wtr2b4

Mit freundlichen Grüßen

PonderStibbons

Re: Kniffliche Variablenerstellung. Hilfe!!

BeitragVerfasst: Mo 23. Okt 2017, 14:50
von AloeArbor
Lieber/Liebe PonderStibbons,

vielen, vielen Dank für deine Antwort! (Wirklich he, du bist großartig!)

Du hast recht, es können natürlich auch mehrere Persönlichkeitstypen die höchste Ausprägung aufzeigen. Daran hatte ich zuvor gar nicht gedacht.
Mit dem if- Befehl und der max Funktion habe ich es nun hinbekommen, die Variable mit der höchsten Ausprägung auszuwählen. Aber wenn es mehrere Variablen mit dem gleichen höchsten Wert sind, wird mir natürlich trotzdem nur eine Variable angezeigt). Besser wäre es, wenn ich eine Möglichkeit hätte, dass mir alle Variablen mit der höchsten Ausprägung angezeigt werden. Gäbe es auch eine Möglichkeit, das dann in Verbindung mit den Werten der Persönlichkeitstypvariablen zu bringen?

Ich habe deine Befehle in meine Syntax eingegeben, da werden mir leider Fehlermeldungen angezeigt. An dieser Stelle:
VECTOR anz.persmax = perstyp1 to perstyp6 .
LOOP #k = 1 to 6 .
IF(anz.persmax(#k) = persmax) anz.persmax = anz.persmax + 1 .
END LOOP.
EXECUTE .


Zeile 1:
112 vector Eine vorhandene Variable, die im Befehl VECTOR angegeben wurde, ist ung ltig. Die Variable ist nicht vorhanden oder es handelt sich um eine Systemvariable ($). Verwenden Sie das Format VECTOR(5) und ersetzen Sie die "5" durch die Anzahl der zu definierenden Variablen, um einen Vektor zu definieren, der aus neuen Variablen zusammengesetzt ist.
112 vector Eine vorhandene Variable, die im Befehl VECTOR angegeben wurde, ist ung ltig. Die Variable ist nicht vorhanden oder es handelt sich um eine Systemvariable ($).

wie verwende ich das Format vector(5)?

Zeile 3:
114 if Ein Ausdruck enthält eine Zeichenfolge, auf die eine linke runde Klammer folgt, wodurch angegeben wird, dass die Zeichenfolge ein Funktions- oder Vektorname ist, aber die Zeichen stimmen nicht mit einer vorhandenen Funktion oder einem vorhandenen Vektor überein. Prüfen Sie die Schreibweise.

Ich habe alle Klammern als runde Klammern geschrieben, ist das falsch?

Ich würde mich sehr freuen, wenn du mir noch einmal helfen könntest, PonderStibbons. Ich halte das aber absolut nicht für selbstverständlich und bin dir sehr dankbar!

Liebe Grüße

Re: Kniffliche Variablenerstellung. Hilfe!!

BeitragVerfasst: Mo 23. Okt 2017, 16:05
von ponderstibbons
Ich hatte geschrieben,
Die folgende Syntax benennt die 6 Persönlichkeitstyp-Variablen mit perstyp1 bis perstyp6. Die Namen müssten für die eigene Rechnung entsprechend geändert werden.

Ist das passiert?

Re: Kniffliche Variablenerstellung. Hilfe!!

BeitragVerfasst: Mo 23. Okt 2017, 17:51
von AloeArbor
Ja, natürlich.

Re: Kniffliche Variablenerstellung. Hilfe!!

BeitragVerfasst: Di 24. Okt 2017, 10:08
von ponderstibbons
Dann ist anz.permax noch nicht angelegt?
Das soll unmittelbar vorher erfolgen durch

NUMERIC anz.persmax (F8.0) .
COMPUTE anz.persmax =0.
VAR LAB anz.persmax "Anzahl Persönlichkeitstypen, die den höchsten Wert aufweisen" .
EXECUTE.


Mit freundlichen Grüßen

PonderStibbons