Kniffliche Variablenerstellung. Hilfe!!

Alles rund um SPSS Syntax und Programmierung.

Kniffliche Variablenerstellung. Hilfe!!

Beitragvon AloeArbor » So 22. Okt 2017, 13:32

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
AloeArbor
 
Beiträge: 3
Registriert: So 22. Okt 2017, 13:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Kniffliche Variablenerstellung. Hilfe!!

Beitragvon strukturmarionette » So 22. Okt 2017, 16:06

Hi,

habe es über den if-Befehl

- versuche es zunächst über die SPSS Dialogfelder

Gruß
S.
strukturmarionette
 
Beiträge: 2504
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 7
Danke bekommen: 122 mal in 122 Posts

Re: Kniffliche Variablenerstellung. Hilfe!!

Beitragvon ponderstibbons » Mo 23. Okt 2017, 11:52

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
ponderstibbons
 
Beiträge: 2523
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 2
Danke bekommen: 257 mal in 256 Posts

Re: Kniffliche Variablenerstellung. Hilfe!!

Beitragvon AloeArbor » Mo 23. Okt 2017, 14:50

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
AloeArbor
 
Beiträge: 3
Registriert: So 22. Okt 2017, 13:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Kniffliche Variablenerstellung. Hilfe!!

Beitragvon ponderstibbons » Mo 23. Okt 2017, 16:05

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?
ponderstibbons
 
Beiträge: 2523
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 2
Danke bekommen: 257 mal in 256 Posts

Re: Kniffliche Variablenerstellung. Hilfe!!

Beitragvon AloeArbor » Mo 23. Okt 2017, 17:51

Ja, natürlich.
AloeArbor
 
Beiträge: 3
Registriert: So 22. Okt 2017, 13:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Kniffliche Variablenerstellung. Hilfe!!

Beitragvon ponderstibbons » Di 24. Okt 2017, 10:08

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
ponderstibbons
 
Beiträge: 2523
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 2
Danke bekommen: 257 mal in 256 Posts


Zurück zu SPSS Syntax

Wer ist online?

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

cron