Seite 1 von 1

Nichtleere Zellen zählen in SPSS

BeitragVerfasst: Do 21. Sep 2017, 01:21
von miner
Hallo,

wie ich in SPSS leere Zellen (also systemdefinierte Missings) zählen kann weiß ich. Nämlich so:

Code: Alles auswählen
count var1 = var2 to var10(sysmis).
execute.


Allerdings will ich die nicht-leeren (!) Zellen zählen. Eine Liste von Werten die gezählt werden sollen, kann/möchte ich nicht angeben, da es viel zu viele Werte sind, die auftreten können und die somit gezählt werden sollen (mehrere hundert unterschiedliche Werte).

Zwei Lösungen die ich schon probiert habe (beide führen leider zu Fehlermeldungen, den Unterschied zur oben stehenden funktionierenden Lösung zur Zählung von leeren Zellen habe ich jeweils rot markiert):


count var1 = var2 to var10(~sysmis).
execute.

count var1 = var2 to var10(~sysmis()).
execute.



Kennt jemand eine Lösung?



Besten Dank und Grüße
Miner

Re: Nichtleere Zellen zählen in SPSS

BeitragVerfasst: Do 21. Sep 2017, 11:04
von ponderstibbons
Du kannst auch COMPUTE und eine der dortigen Funktionen benutzen.

Re: Nichtleere Zellen zählen in SPSS

BeitragVerfasst: Do 21. Sep 2017, 14:42
von miner
ponderstibbons hat geschrieben:Du kannst auch COMPUTE und eine der dortigen Funktionen benutzen.


Welche der dortigen Funktionen denn? Mit If-Anweisungen würde es gehen, aber womöglich mit größeren Umständen. Im Beispiel sind es nur zehn Variablen (aus Vereinfachungsgründen), im echten Datensatz aber Dutzende (es können auch mal hunderte sein). If in Verbindung mit loop könnte es einfacher machen, aber mit loop habe ich bisher noch nie gearbeitet. Fände das auch recht umständlich für so eine kleine Anforderung.

Mit dem Count-Befehl fällt mir noch diese Lösung ein:

Code: Alles auswählen
count Hilfsvariable = var1 to var10(sysmis).
compute Zielvariable = 10 - Hilfsvariable.
execute.


(Ich hätte aber vermutet, man müsse so eine Mini-Anforderung auch mit lediglich einer einzigen Code-Zeile lösen können.)

Re: Nichtleere Zellen zählen in SPSS

BeitragVerfasst: Do 21. Sep 2017, 15:16
von ponderstibbons
NVALID

Re: Nichtleere Zellen zählen in SPSS

BeitragVerfasst: Do 21. Sep 2017, 17:35
von miner
Hi ponderstibbons,

Deine Beiträge sind kurz und hilfreich!;) NVALID kannte ich noch nicht. Habe NVALID jetzt Dank Deinem Hinweis in mein Reppertoire aufgenommen!

Hinsichtlich des aktuellen Problems habe ich mittlerweile gemerkt, dass mir mit dem Zählen der validen Werten noch nicht geholfen ist. Eigentlich dürfen nur alle UNTERSCHIEDLICHEN validen Werte gezählt werden.

Für z.B. diesen Datensatz:

Code: Alles auswählen
ID   var1   var2   var3  var4
1     10    10     20    10
2     20    20     20    10
3     10    20     30    20
4     miss  10     20    30
...


Müssten sich nach zählen der validen UNTERSCHIEDLICHEN Werte folgendes ergeben: (neu berechnet werden soll also die neue Variable ganz rechts außen)

Code: Alles auswählen
ID   var1   var2   var3  var4   unterschiedlicheValideWerte
1     10    10     20    10     2
2     20    20     20    10     2
3     10    20     30    20     3
4     miss  10     20    30     3
...



Ich habe es jetzt mit einem Work-around probiert, nämlich so:

Code: Alles auswählen
count Hilfsvariable_1 = var1 to var4(10).
count Hilfsvariable_2 = var1 to var4(20).
count Hilfsvariable_3 = var1 to var4(30).
execute.

count unterschiedlicheValideWerte = Hilfsvariable_1 to Hilfsvariable_5(1 thru highest).
execute.


Bei diesem Beispiel können nur drei unterschiedliche Werte auftreten (nämlich 10,20 und 30). Dadurch ist der Code relativ kurz. Im echten Datensatz sind es aber mehrere dutzend Werte (theoretisch könnten es auch mehrere hunderte Werte sein). Der Code führt zwar zum erwünschten Ergebnis, ist aber relativ lang. Und die Lösung ist nicht gerade elegant.


Frage: Gibt es nicht einen Befehl, der das sehr viel einfacher macht? Also einen Befehl ZähleAlleUnterschiedlichenValidenWerte? :)


Besten Dank und Grüße
Miner

Re: Nichtleere Zellen zählen in SPSS

BeitragVerfasst: Fr 22. Sep 2017, 11:22
von ponderstibbons
Unter anderem Namen abspeichern.
Mit Umstrukturieren ins lange Format bringen und dabei die Werte von v1 bis v4 zu einer Variablen (nennen wir sie mal "wert") zusammenfassen.
Nach id und wert sortieren.
In Fälle auswählen Bedingung (id ne LAG(id)) OR (wert ne LAG(wert)). Alle anderen löschen lassen (SELECT IF).
In Aggregieren id als break-Variable setzen und "Anzahl der Fälle" (=Anzahl unterschiedlicher Werte innerhalb einer id) anfordern.
Mit Fälle auswählen nur die die Fälle beibehalten, in denen (id ne LAG(id)) . Alle anderen löschen lassen (SELECT IF).

Der Rest ist Abspeichern und "Dateien zusammenfügen".

Re: Nichtleere Zellen zählen in SPSS

BeitragVerfasst: Fr 22. Sep 2017, 15:07
von miner
Besten Dank, ich muss dass alles in Ruhe ausprobieren.