Variablen zu Kategorien/Variablengruppen zuordnen

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
Nik
Beiträge: 3
Registriert: 09.12.2009, 23:37

Variablen zu Kategorien/Variablengruppen zuordnen

Beitrag von Nik »

Hi liebe SPSS Profis,
ich benutze seit einer Woche SPSS (bzw. PASW) 17 um meine Examensarbeit auszuwerten. Ich greife auf Daten einer größeren Internationalen Studie zurück und habe dementsprechend viele variable, von denen ich nicht alle brauche, einige zu neuen Variablen zusammenfassen möchte, etc. .
In die Syntax habe ich mich ein bischen eingearbeitet und wie man mit RECODE und COMPUTE mein Problem grundsätzlich lösen kann ist mir bewusst. Aber:
Ich möchte 1. nicht so viel Zeit mit dem schreiben der Umwandlungsbefehle verbringen und 2. kann es gut sein, dass ich noch neue Variable dazu nehme oder manche einer anderen Kategorie zuordenen möchte. Dafür möchte ich möglichst kurzen und übersichtlichen Quellcode.

Ich hatte daran gedacht, den Variablen weitere Attribute wie "Mathematische Kompetenz" oder "didaktische Kompetenz" zuzuordnen. Es gibt sogar die Möglichkeit über den Befehl "ATTRIBUTES". Ich habe aber keine Möglichkeit gefunden, die Attribute einer Variablen sinnvoll abzufragen, und so mit einer Schleife die neue Variable möglichst Code-sparend und übersichtlich zu berechnen.

Die zweite Möglichkeit, die mir eingefallen ist, wäre die Speicherung der Variablen jeweils in einem Vektor zu jeder Kategorie. Das Problem dabei ist, dass man offenbar Vektoren nur zu aufeinander folgenden Variablen erstellen kann (mit 'VEKTOR Kategorie1= Varx TO Vary') und meine Variablen nicht in der richtigen Reihenfolge sind.

Für Hilfe wäre ich sehr dankbar. Insbesondere auch für die Auskunft, dass das einfach nicht geht bzw. mit den Methoden, die mir eingefallen sind nicht geht.

Herzlichen Gruß und Dank im vorraus
Nikolai
georggraph
Beiträge: 114
Registriert: 30.03.2009, 09:39

Beitrag von georggraph »

Hallo Nikolai,

grundsätzlich hört sich Dein Lösungsansatz mit dem VECTOR durchaus vielversprechend an. Aufgrund der von Dir beschriebenen Schwäche des VECTOR-Befehls, nur Variablen zu verarbeiten, die in einer kontinuierlichen Reihenfolge in der Datei auftreten, nutze ich ihn nur sporadisch.
Flexibler, wenn auch etwas komplizierter in der Handhabung, ist man mit Makros unterwegs. Ein Beispielmakro wäre z.B. folgendes:

Code: Alles auswählen

DEFINE !makro1 (!POSITIONAL !CMDEND).
  !DO !i !IN (!1).
    COMPUTE !i = !i * 1000.
    EXE.
  !DOEND.
!ENDDEFINE.

!makro1 v1 v3.
Dieses Beispielmakro multipliziert die Werte der Variablen v1 und v3 jeweils mit dem Wert 1000. Zwischen den Befehlen !DEFINE und !ENDDEFINE wird das Makro definiert; mit der Zeile "!makro1 v1 v3." wird das Makro schließlich aufgerufen. Bei diesem Makroaufruf werden die Variablen v1 und v3 an den Parameter "!POSITIONAL !CMDEND" des Makros übergeben. Das Makro selber besteht aus einer Schleife (!DO), die über die Ausprägungen des ersten Parameters des Makroaufrufs (angesprochen mit !1) läuft, der in diesem Beispiel zugleich der einzige Parameter ist. Diese Ausprägungen des Parameters !1 sind wie gesagt die beiden übergebenen Variablen v1 und v3. Danach folgen die Kalkulationen (im Beispiel die Multiplikation mit 1000). !DOEND beendet die Schleife.

Hört sich wahrscheinlich anfangs erstmal ziemlich kompliziert an. Ist es sicher auch, aber ein sehr hilfreiches Dokument wird mit SPSS schon mitgeliefert (ich denke mal, in Version 17 ist es auch dabei): Die "Command Syntax Reference". In meiner Version kann man dieses pdf einfach über das Menü "Hilfe" aufrufen. Dort gibt es auch ein ausführliches Kapitel zu "DEFINE-!ENDDEFINE".

So, jetzt muss ich aber anfangen zu arbeiten :) .

Viele Grüße,
georggraph
"Ein kaum merkliches Kopfnicken verriet dann, dass er nicht die Absicht habe, diese Frage zu beantworten, und es war Sache des Fragestellers, seinen eigenen Fehler zu erkennen und die Frage neu zu formulieren." (F.Kafka: Der Verschollene)
Nik
Beiträge: 3
Registriert: 09.12.2009, 23:37

Beitrag von Nik »

Vielen Dank für die schnelle und ausführliche Antwort.
Ich hatte mich bisher um Macros gedrückt, weil ich die SYNTAX nicht so einfach zu durchschauen fand. Werd's mal probieren.

Falls es noch weitere Ideen gibt: Immer raus damit.

Lieben Gruß und nochmals herzlichen Dank
Nikolai
georggraph
Beiträge: 114
Registriert: 30.03.2009, 09:39

Beitrag von georggraph »

Hallo Nik,

Zugegebenermaßen sind Makros für Einsteiger in die Syntaxsprache nicht einfach zu verstehen (ging mir anfangs auch so).

Eine einfachere, aber dennoch nützliche Funktion ist die DO REPEAT-Schleife. Schau hierzu mal in der SPSS-Hilfe nach.

Falls Du immer wieder mit den gleichen Variablen unterschiedliche Kalkulationen/Transformationen/etc. durchführen möchtest, würde sich ein (ganz simples) Variablenlistenmakro anbieten, z.B.:

Code: Alles auswählen

DEFINE !varlist1 () var1 var2 var7 var8 var12 !ENDDEFINE.
Der Vorteil ist, dass Du nur einmal diese Variablenliste definieren musst und dann in allen möglichen Befehle/Schleifen/etc. Bezug auf sie nehmen kannst.

Die VarListe kannst Du sogar mit der DO REPEAT-Schleife verknüpfen, also statt...

Code: Alles auswählen

DO REPEAT var = var1 var2 var7 var8 var12.
...kannst Du stattdessen auch schreiben:

Code: Alles auswählen

DO REPEAT var = !varlist1.
Viele Grüße,
georggraph
"Ein kaum merkliches Kopfnicken verriet dann, dass er nicht die Absicht habe, diese Frage zu beantworten, und es war Sache des Fragestellers, seinen eigenen Fehler zu erkennen und die Frage neu zu formulieren." (F.Kafka: Der Verschollene)
Nik
Beiträge: 3
Registriert: 09.12.2009, 23:37

Beitrag von Nik »

Nochmals vielen Dank für die Antwort. Mittlerweile habe ich das Problem mit Hilfe von Macros einigermaßen zufriedenstellend gelöst. Den Befehl
DEFINE !varlist1 () var1 var2 var7 var8 var12 !ENDDEFINE.
habe ich dafür auch ausgiebig genutzt. Das größte Problem war noch eine neue Mittelwertsfunktion (MEAN) zu Programmieren, die eine varlist wie oben Definiert bearbeiten kann (falls es dazu ne eigene Funktion schon gibt: mir bitte mitteilen).
Ansonsten bin ich aber mittlerweile gut genug versorgt. Vielen Dank nochmals.
Gruß
Nikolai
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