Multiple Fälle eines Patienten filtern/aggregieren

Alles rund um SPSS Syntax und Programmierung.

Multiple Fälle eines Patienten filtern/aggregieren

Beitragvon Chris33 » So 3. Apr 2016, 13:11

Da mein letzter Post nicht präzise genug war und es um die grundsätzliche Methode geht, erstelle ich einen neuen Post. Ich hoffe das entspricht eurer Philosophie in diesem Forum.

Ich habe einen Datensatz, der wie folgt aussieht:

Code: Alles auswählen
NAME, VORNAME, GEBURTSDATUM, UNTERSUCHUNGSDATUM, MESSWERT
Mustermann, Tom, 12.03.1980, 01.01.2015, 12
Mustermann, Tom, 12.03.1980, 01.01.2014, 14
Mustermann, Tom Anton, 23.04.1960, 01.01.2014, 45
Mustermann, Tom-Anton, 23.04.1960, 01.12.2010, 46
Mustermann, Tom, 23.04.1960, 01.03.2014, 40


Wie man sieht geht es hier um zwei Patienten. Da bei der Dateneingabe manchmal Probleme mit dem Vornamen auftauchen (zweite fehlt oder mit/ohne Bindestrich), sollen Datensätze gleicher Patienten per Nachname und Geburtsdatum zusammengefasst werden.

Bislang habe ich das mit einer Aggregation gemacht. Dabei Nachname und Geburtsdatum als Breakvariable definiert. Von den ausgewählten Messdaten wird immer der erste Datensatz (first) ausgewählt.

Genau hier entsteht mein Problem: Ich möchte immer den frühesten Datensatz auswählen, d.h. wenn ein Patient mehrere Untersuchungen hatte, dann soll der Datensatz mit dem ältesten Datum verwendet werden. Im Beispiel wäre das bei beiden Patienten jeweils der zweite Fall - und nicht wie es aktuell bei mir geschieht, der erste Fall. Bei der Aggregationsfunktion selbst sehe ich nicht die Möglichkeit dieser Einstellung.

Versucht habe ich es auch mit einer Filterfunktion, was mir noch weniger gelungen ist.

Insofern stellt sich hier auch die Frage, ob die Aggregation an sich die beste Möglichkeit ist - lieber wäre mir natürlich, wenn ich den Originaldatensatz weiter verwenden kann.

P.S.: Wieso funktioniert die Tabelle nicht? (deshalb die Tabelle oben als Code dargestellt)

[table border=1 cellpadding=0 cellspacing=0 width=100% height=50px][tr][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]NAME[/td] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]VORNAME[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]GEBURTSDATUM[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]UNTERSUCHUNGSDATUM[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]MESSWERT[/td][/tr][tr] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Mustermann[/td] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Tom[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]12.03.1980[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]01.01.2015[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]12[/td][/tr][tr] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Mustermann[/td] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Tom[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]12.03.1980[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]01.01.2014[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]14[/td][/tr][tr] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Mustermann[/td] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Tom Anton[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]23.04.1960[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]01.01.2014[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]45[/td][/tr][tr] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Mustermann[/td] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Tom[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]23.04.1960[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]01.12.2010[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]46[/td][/tr][tr] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Mustermann[/td] [td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]Tom-Anton[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]23.04.1960[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]01.03.2014[/td][td align=center valign=middle bordercolor=#666666 bgcolor=#CCCCCC]40[/td][/tr][/table]
Chris33
 
Beiträge: 6
Registriert: Sa 2. Apr 2016, 11:46
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Multiple Fälle eines Patienten filtern/aggregieren

Beitragvon ponderstibbons » So 3. Apr 2016, 13:44

Wie man sieht geht es hier um zwei Patienten. Da bei der Dateneingabe manchmal Probleme mit dem Vornamen auftauchen (zweite fehlt oder mit/ohne Bindestrich), sollen Datensätze gleicher Patienten per Nachname und Geburtsdatum zusammengefasst werden.

Was soll das heißen, zusammengefasst?
Genau hier entsteht mein Problem: Ich möchte immer den frühesten Datensatz auswählen, d.h. wenn ein Patient mehrere Untersuchungen hatte, dann soll der Datensatz mit dem ältesten Datum verwendet werden.

Also nicht zusammenfassen, sondern auswählen/filtern?
Insofern stellt sich hier auch die Frage, ob die Aggregation an sich die beste Möglichkeit ist - lieber wäre mir natürlich, wenn ich den Originaldatensatz weiter verwenden kann.

Leider verstehe ich nach wie vor nicht, worin konkret das Problem und die Absicht besteht.
ponderstibbons
 
Beiträge: 2480
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 1
Danke bekommen: 256 mal in 255 Posts

Re: Multiple Fälle eines Patienten filtern/aggregieren

Beitragvon Chris33 » So 3. Apr 2016, 14:43

Von diesen Originaldaten...

Code: Alles auswählen
NAME, VORNAME, GEBURTSDATUM, UNTERSUCHUNGSDATUM, MESSWERT
Mustermann, Tom, 12.03.1980, 01.01.2015, 12
Mustermann, Tom, 12.03.1980, 01.01.2014, 14
Mustermann, Tom Anton, 23.04.1960, 01.01.2014, 45
Mustermann, Tom-Anton, 23.04.1960, 01.12.2010, 46
Mustermann, Tom, 23.04.1960, 01.03.2014, 40


...möchte ich nur noch diese haben - zur weiteren Verarbeitung:

Code: Alles auswählen
NAME, VORNAME, GEBURTSDATUM, UNTERSUCHUNGSDATUM, MESSWERT
Mustermann, Tom, 12.03.1980, 01.01.2014, 14
Mustermann, Tom-Anton, 23.04.1960, 01.12.2010, 46
Chris33
 
Beiträge: 6
Registriert: Sa 2. Apr 2016, 11:46
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Multiple Fälle eines Patienten filtern/aggregieren

Beitragvon strukturmarionette » So 3. Apr 2016, 17:04

Hi,

Dieses aktuellere Posting von Dir hat aber kaum etwas mit dem Ursprungsposting zu tun.

Jenes würde über die SPSS-Quellcode funtionieren.

SORT CASES BY VAR00001(A) VAR00002(A).
USE ALL.
COMPUTE filter_$=(($casenum =1) OR var00001 <>lag(var00001,1) AND var00002 <>lag(var00002,1)).
VARIABLE LABELS filter_$ '($casenum =1) OR var00001 <>lag(var00001,1) AND var00002 '+
'<>lag(var00002,1) (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMATS filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE.


Abgewandelt natürlich auch über die SPSS-Dialogfenster.
Weil du nicht die Variablenansicht mitgeteilt hast, sondern nur einen Ausschnitt der Datenansicht, müssen die Var_Namen angepasst werden.

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

Re: Multiple Fälle eines Patienten filtern/aggregieren

Beitragvon ponderstibbons » So 3. Apr 2016, 18:33

Nach Name, Vorname, Geburtsdatum, Untersuchungsdatum (aufsteigend) sortieren.

Dann die Fälle kennzeichnen, wo dieselbe Person zum wederholten Male auftaucht:

IF(name=LAG(Name) and Vorname=LAG(Vorname) and Geburtsdatum=LAG(Gebutsdatum)) flag = 1.
EXECUTE.

Dann die Fälle mit flag=1 ausfiltern oder loeschen.

Alternativ die Prozedur Rangfolge bilden nutzen (nach den Variablen name, vorname, geburtstag; zu rankende Variable Untersuchungsdatum). Alles ausfiltern, das Rang > 1 hat.
ponderstibbons
 
Beiträge: 2480
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 1
Danke bekommen: 256 mal in 255 Posts

Re: Multiple Fälle eines Patienten filtern/aggregieren

Beitragvon ponderstibbons » So 3. Apr 2016, 18:34

ach so, war schon
ponderstibbons
 
Beiträge: 2480
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 1
Danke bekommen: 256 mal in 255 Posts


Zurück zu SPSS Syntax

Wer ist online?

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