Umstrukturieren fehlende Werte, Fälle zusammenführen

Alles rund um SPSS Syntax und Programmierung.

Umstrukturieren fehlende Werte, Fälle zusammenführen

Beitragvon Ndchk » Di 6. Sep 2022, 17:42

Hallo zusammen,

ich versuche gerade ausgewählte Fälle zu Variablen umzustrukturieren. Leider habe ich keinen richtigen Datensatz, sondern ein logfile, bei dem es 60 trials gibt (3 Kategorien mit jeweils 4 Faktoren, die jeweils 5 mal wiederholt werden). Für die spätere Berechnung ist es wichtig, dass ich jede der 12 Bedingungen als einzelne Variable habe, die ich auch bereits definiert habe. So stehen in jeder Variable logischerweise nur 5 Werte, obwohl ich 60 Fälle (Durchgänge) habe. Ich habe mal ein Bild angefügt, damit es etwas verständlicher wird. Hier sind die Fälle schon nach den jeweiligen Kategorien sortiert.

spss Umstrukturierung.png
Screenshot SPSS
spss Umstrukturierung.png (41.87 KiB) 2359-mal betrachtet


Ich habe also zwölf Variablen (KategorieX FaktorX)
k1f1 k1f2 k1f3 k1f4 k2f1 k2f2 k2f3 k2f4 k3f1 k3f2 k3f3 k3f4
plus die ID (natürlich immer die gleiche), die trialnummer (1-60) und noch eine Indexvariable (aufsteigende Reihenfolge 1-60, da trialnummer nach dem sortieren natürlich nicht mehr in richtiger Reihenfolge ist)

Wenn ich nun die Daten umstrukturiere (ID Variable = ID und Indexvariable =idx) habe ich natürlich sehr viele variablen mit fehlenden Werten, da bei jeder Variable 55 fehlende Werte sind. Ist es möglich die Fälle zusammenzuführen, so dass ich nur die ersten 5 Zeilen habe? Oder kann man bei der Umstrukturierung fehlende Werte ausschließen?

Vielen Dank schon mal!

LG
Ndchk
 
Beiträge: 3
Registriert: Di 6. Sep 2022, 17:17
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Umstrukturieren fehlende Werte, Fälle zusammenführen

Beitragvon strukturmarionette » Di 6. Sep 2022, 18:14

Hi,

Leider habe ich keinen richtigen Datensatz, sondern ein logfile

- beschreibe zunächst deine Original-Logdatei und woher die stammt und zu wechen Zweck die von wem angefertigt wurde
- dann die vollständige und konkrete SPSS-Variablenbeschreibung der SPSS-Datei, auf die du sich hier beziehst

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

Re: Umstrukturieren fehlende Werte, Fälle zusammenführen

Beitragvon Ndchk » Di 6. Sep 2022, 19:32

Hallo,
vielen Dank erstmal für die schnelle Antwort!

Es handelt sich dabei um eine instrumentelle Motivationsaufgabe, bei der Probanden per Tastendruck um drei mögliche Belohnungen (rew_cat [cig, liq, mon] ) mit jeweils vier möglichen Belohnungsstufen (rew_fac [0, 1, 10, 100] ) spielen können.
Insgesamt sind es 60 Durchgänge, das heißt jede Bedingung kommt 5 mal. Meine Aufgabe ist es nun das Antwortverhalten der Probanden (tar_resp) für jede einzelne Bedingung zu bestimmen und den Mittelwert zu bilden. (also Mittelwert von cig0, cig1, usw. ) Ich bekomme pro Probanden eine Results-Logfile als text-Datei ausgespuckt:
Text-Logfile.JPG
logfile
Text-Logfile.JPG (35.46 KiB) 2354-mal betrachtet


Nun hätte ich gerne pro Proband eine Spalte mit ID, den jeweiligen response Werten plus den jeweiligen Mittelwerten. Daher habe ich versucht die Variable tar_resp in vier Variablen aufzuteilen. Ich weiß nicht, ob das wirklich Sinn macht.
Momentan sieht meine Syntax so aus:

Code: Alles auswählen
GET DATA  /TYPE = TXT
/FILE = '.....
/DELCASE = LINE
/DELIMITERS = "\t"
/ARRANGEMENT = DELIMITED
/FIRSTCASE = 2
/IMPORTCASE = ALL
/VARIABLES =
trial F3.0
rew_cat A
rew_fac F4
cat_fac F3
cue_resp F2
fix1_resp F2
tar_resp F3
fix2_resp F2
fdb_resp F2
rew F4.3
cum_rew F4.3
rt F6
.
CACHE.
EXECUTE.
DATASET NAME DataSet2 WINDOW=FRONT.

*ersten 9 Zeilen löschen, da Übungsdurchgang

compute casenum = $casenum.
EXECUTE.
select if casenum > 10.
EXECUTE.
delete variable casenum.
EXECUTE.

*Kategorie 1 Variablen erstellen

IF (rew_cat = 'cig' & rew_fac = 0) cig0_resp = tar_resp.
EXECUTE.

IF (rew_cat = 'cig' & rew_fac = 1) cig1_resp = tar_resp.
EXECUTE.
   
IF (rew_cat = 'cig' & rew_fac = 10) cig10_resp = tar_resp.
EXECUTE.

IF (rew_cat = 'cig' & rew_fac = 100) cig100_resp = tar_resp.
EXECUTE.

*Kategorie 2 Variablen erstellen

IF (rew_cat = 'mon' & rew_fac = 0) mon0_resp = tar_resp.
EXECUTE.

IF (rew_cat = 'mon' & rew_fac = 1) mon1_resp = tar_resp.
EXECUTE.
   
IF (rew_cat = 'mon' & rew_fac = 10) mon10_resp = tar_resp.
EXECUTE.

IF (rew_cat = 'mon' & rew_fac = 100) mon100_resp = tar_resp.
EXECUTE.

*Kategorie 3 Variablen erstellen

IF (rew_cat = 'liq' & rew_fac = 0) liq0_resp = tar_resp.
EXECUTE.

IF (rew_cat = 'liq' & rew_fac = 1) liq1_resp = tar_resp.
EXECUTE.
   
IF (rew_cat = 'liq' & rew_fac = 10) liq10_resp = tar_resp.
EXECUTE.

IF (rew_cat = 'liq' & rew_fac = 100) liq100_resp = tar_resp.
EXECUTE.

*Variable ID erstellen

COMPUTE id = 56000021.
FORMATS id (F2.0).

*Nach Kategorie sortieren

SORT CASES BY cat_fac(A).

*Indexvariable erstellen

compute idx = $casenum.
FORMATS idx (F2.0).
EXECUTE.

*unwichtige Variablen löschen

DELETE VARIABLES trial TO rt.

*Umstrukturieren

CASESTOVARS
/ID = id
/AUTOFIX = NO
/INDEX = trial
/GROUPBY = VARIABLE .


Ich hoffe, es wurde etwas klarer. Ich bin für jeden Tipp dankbar. Es kann auch sehr gut sein, dass ich das ganze total falsch angegangen bin - ich bin jetzt nicht so fit in SPSS. Falls es eine bessere Option gibt, würde ich mich über Anregungen freuen.

Danke und liebe Grüße
Ndchk
 
Beiträge: 3
Registriert: Di 6. Sep 2022, 17:17
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Umstrukturieren fehlende Werte, Fälle zusammenführen

Beitragvon strukturmarionette » Mi 7. Sep 2022, 00:07

Hi,

- sorry, aber das meinte ich mit meinen Fragen nicht
- prinzipiell ist es aber einfach, per SPSS-Dialogfelder beliebige Datei-Umstrukturierungen vorzunehmen

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

Re: Umstrukturieren fehlende Werte, Fälle zusammenführen

Beitragvon Lanin » Mi 7. Sep 2022, 10:15

Versuche es mal mit

Transformieren ...
Werte verschieben ...

Dort jeweils Methode "Wert aus späterem Fall beziehen (Lead)". Anzahl der zu verschiebenden Fällen ist dann bei der ersten Variable = 5, bei der zweiten Variable = 10, u.s.w.

Syntaxbefehl für Deine Variablen cig1_resp und cig10_resp wäre dann beispielsweise

Code: Alles auswählen
SHIFT VALUES VARIABLE=cig1_resp RESULT=cig1_resp_newvar LEAD=5.
SHIFT VALUES VARIABLE=cig10_resp RESULT=cig10_resp_newvar LEAD=10.


Anschließend müssen dann natürlich noch überflüssige Zeilen (Fälle) gelöscht werden.
Lanin
 
Beiträge: 18
Registriert: Mo 29. Aug 2022, 14:29
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Umstrukturieren fehlende Werte, Fälle zusammenführen

Beitragvon Ndchk » Mi 7. Sep 2022, 13:46

Ach perfekt, vielen lieben Dank, Lanin.
Das hat geklappt! :) :)
Ndchk
 
Beiträge: 3
Registriert: Di 6. Sep 2022, 17:17
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu SPSS Syntax

Wer ist online?

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

cron