Hallo zusammen,
kennt jemand einen Syntaxbefehl, um einen SPSS-Datensatz nach identischen Fällen (Doubletten) zu durchsuchen und deren Anzahl in einer Variablen auszugeben?
Mein Datensatz sieht so aus:
ID.......Name
001.....Meier
001.....Meier
003.....Schneider
002.....Horst
003.....Schneider
001.....Meier
Ich hätte gerne eine Variable, die angibt, wie häufig eine ID vorkommt:
ID.......Name.......Anzahl
001.....Meier........3
001.....Meier........3
003.....Schneider..2
002.....Horst.........1
003.....Schneider..2
001.....Meier........3
Ich habe mir folgende Syntax zusammengereimt:
SORT CASES ID (A).
IF (ID ~= LAG (ID,1)) IDNR=0.
COMPUTE IDNR = IDNR+1.
LEAVE IDNR. EXECUTE.
Allerdings ist dadurch nur einmal der Maximalwert vergeben und zwar in der letzten Zeile des jew. Namens (der nach gleichem Namen sortierten Datei). Also stünde nur in der letzten "Meier"-Zeile die 3 und in der letzten "Schneider"-Zeile die 2.
ID.......Name.......Anzahl
001.....Meier........1
001.....Meier........2
001.....Meier........3
002.....Horst.........1
003.....Schneider..1
003.....Schneider..2
Wie gesagt, bräuchte ich die Anzahl-Variable pro Namen identisch (sofern sie auch die gleiche ID haben).
Hat jemand einen Ansatz?
Danke und LG,
Regina
Anzahl identischer Fälle zählen
-
- Beiträge: 2391
- Registriert: 06.02.2011, 19:58
re
das ist bei SPSS doch schon fertig implementiert: Daten - doppelte Fälle ermitteln.
Hier ein Syntaxbeispiel mit v2 und v3 als Variablen:
Gruß
Hier ein Syntaxbeispiel mit v2 und v3 als Variablen:
Code: Alles auswählen
DATASET ACTIVATE DatenSet1.
* Doppelte Fälle ermitteln.
SORT CASES BY v3(A) v2(A).
MATCH FILES
/FILE=*
/BY v3 v2
/FIRST=PrimaryFirst
/LAST=PrimaryLast.
DO IF (PrimaryFirst).
COMPUTE MatchSequence=1-PrimaryLast.
ELSE.
COMPUTE MatchSequence=MatchSequence+1.
END IF.
LEAVE MatchSequence.
FORMAT MatchSequence (f7).
COMPUTE InDupGrp=MatchSequence>0.
SORT CASES InDupGrp(D).
MATCH FILES
/FILE=*
/DROP=PrimaryFirst InDupGrp MatchSequence.
VARIABLE LABELS PrimaryLast 'Indicator of each last matching case as Primary'.
VALUE LABELS PrimaryLast 0 'Duplicate Case' 1 'Primary Case'.
VARIABLE LEVEL PrimaryLast (ORDINAL).
FREQUENCIES VARIABLES=PrimaryLast.
EXECUTE.
drfg2008
-
- Beiträge: 11
- Registriert: 06.09.2010, 11:55
vielen Dank Euch beiden!
@drfg2008: Bei der in SPSS enthaltenen Methode bekomme ich die Anzahl nicht in der Form als Variable ausgewiesen, dass bei identischen IDs immer die gleiche Anzahl steht, da bei der Zählung immer um 1 erhöht wird. Genau dies ist aber mein Anliegen.
@Generalist: Mit Deiner Methode bekomme ich das so hin, wie ich das haben möchte, da eine einheitliche Fallanzahl-ID gebildet wird.
LG, Regina.
@drfg2008: Bei der in SPSS enthaltenen Methode bekomme ich die Anzahl nicht in der Form als Variable ausgewiesen, dass bei identischen IDs immer die gleiche Anzahl steht, da bei der Zählung immer um 1 erhöht wird. Genau dies ist aber mein Anliegen.
@Generalist: Mit Deiner Methode bekomme ich das so hin, wie ich das haben möchte, da eine einheitliche Fallanzahl-ID gebildet wird.
LG, Regina.
-
- Beiträge: 2391
- Registriert: 06.02.2011, 19:58
re
Ja gut, aber das sind zwei verschiedene Fragen.kennt jemand einen Syntaxbefehl, um einen SPSS-Datensatz nach identischen Fällen (Doubletten) zu durchsuchen und deren Anzahl in einer Variablen auszugeben?
Ich hätte gerne eine Variable, die angibt, wie häufig eine ID vorkommt:
Gruß
drfg2008