Sicher ganz einfach! Wenn man es kann!
-
- Beiträge: 5
- Registriert: 20.06.2011, 14:10
Sicher ganz einfach! Wenn man es kann!
Hall zusammen,
ich hab von Spss leider so gut wie (noch) keine Ahnunung.
also...
ich hab über 8 Wochen von ca 30 Probanden täglich verschiedene Daten erhoben.
in meiner Datenansicht stehen die Daten etwa so
Prob._____Tag____MerkmalX
P1.................1............0
P1.................2............1
P1.................3............1
P1.................4............0
...
P2.................1............0
P2.................2............0
p2.................3............1
P2.................4............0
...
usw.
nun möchte ich einfach nur das mir die Häugikeiten vom MerkmalX für jeden Probanden innerhalb des Untersuchungszeitraumes ausgegeben werden.
also
P1 MerkamlX 15
P2 MerkamlX 5
usw.
ist sicherlich ziemlich einfach.
Vielen Dank für eure Hilfe.
Gruß Henrikx
ich hab von Spss leider so gut wie (noch) keine Ahnunung.
also...
ich hab über 8 Wochen von ca 30 Probanden täglich verschiedene Daten erhoben.
in meiner Datenansicht stehen die Daten etwa so
Prob._____Tag____MerkmalX
P1.................1............0
P1.................2............1
P1.................3............1
P1.................4............0
...
P2.................1............0
P2.................2............0
p2.................3............1
P2.................4............0
...
usw.
nun möchte ich einfach nur das mir die Häugikeiten vom MerkmalX für jeden Probanden innerhalb des Untersuchungszeitraumes ausgegeben werden.
also
P1 MerkamlX 15
P2 MerkamlX 5
usw.
ist sicherlich ziemlich einfach.
Vielen Dank für eure Hilfe.
Gruß Henrikx
-
- Beiträge: 2391
- Registriert: 06.02.2011, 19:58
re
ja das ist ganz einfach, wenn Merkmal X nur als 1 und 0 codiert ist.
Das geht über
Daten -> Daten aggregieren -> Break Variable=Person, Zusammenfassung: Summe (Variable X)
oder Syntax
Gruß
Das geht über
Daten -> Daten aggregieren -> Break Variable=Person, Zusammenfassung: Summe (Variable X)
oder Syntax
Code: Alles auswählen
DATASET DECLARE agg.
AGGREGATE
/OUTFILE='agg'
/BREAK=prob
/merkmalX_sum=SUM(merkmalX).
Gruß
drfg2008
-
- Beiträge: 5
- Registriert: 20.06.2011, 14:10
Ich hab da noch eine Frage und diesmal wirds schwieriger!
Kann ich mir auch Häufigkeit von "Perioden" für jeden Probanden Ausgeben lassen?
Wenn also an Tag 2 und 3 MerkamlX auftritt, dann ist es eine Periode. An Tag 8-12 wieder-> 2 Periode usw.?
Dazu wäre eine Unterscheidung noch super ob die Perioden in der 1. oder in der 2. Hälfte war!
Ich hoffe es ist alles verständlich.
ps: das Merkmal ist nur mit 0 und 1 codiert
Kann ich mir auch Häufigkeit von "Perioden" für jeden Probanden Ausgeben lassen?
Wenn also an Tag 2 und 3 MerkamlX auftritt, dann ist es eine Periode. An Tag 8-12 wieder-> 2 Periode usw.?
Dazu wäre eine Unterscheidung noch super ob die Perioden in der 1. oder in der 2. Hälfte war!
Ich hoffe es ist alles verständlich.
ps: das Merkmal ist nur mit 0 und 1 codiert
-
- Beiträge: 1733
- Registriert: 11.03.2010, 22:28
Die folgende Syntax erzeugt eine Variable "serie", die am 2. Tag einer Serie den Wert "1" erhält. Die Daten sollen nach Person und Tag geordnet vorliegen.
IF(merkmal = 1 and LAG(merkmal) = 1 and LAG(merkmal,2) = 0 and
person = LAG(person)) serie = 1 .
EXECUTE .
IF(tag=2 and merkmal=1 and LAG(merkmal)=1) serie = 1 .
EXECUTE .
Anzahl der "Einsen" je Proband (Prozedur Mittelwerte vergleichen, Anfordern von "Summe") ist die Zahl der Serien.
-- Hab gerade kein SPSS da, daher ohne Gewähr. --
Wenn es noch nach Tag eingeteilt werden soll, kannst Du erstmal eine Variable für die Phase berechnen lassen (eben mit "1" für Tag <= 28 und "2" für Tag > 28 ) und die als zusätzlich als Schichtungsvariable in "Mittelwerte" verwenden.
IF(merkmal = 1 and LAG(merkmal) = 1 and LAG(merkmal,2) = 0 and
person = LAG(person)) serie = 1 .
EXECUTE .
IF(tag=2 and merkmal=1 and LAG(merkmal)=1) serie = 1 .
EXECUTE .
Anzahl der "Einsen" je Proband (Prozedur Mittelwerte vergleichen, Anfordern von "Summe") ist die Zahl der Serien.
-- Hab gerade kein SPSS da, daher ohne Gewähr. --
Wenn es noch nach Tag eingeteilt werden soll, kannst Du erstmal eine Variable für die Phase berechnen lassen (eben mit "1" für Tag <= 28 und "2" für Tag > 28 ) und die als zusätzlich als Schichtungsvariable in "Mittelwerte" verwenden.
-
- Beiträge: 5
- Registriert: 20.06.2011, 14:10
DIY
so hab das Ganze selber hinbekomme! Bestimmt nicht die eleganteste Lösung aber sie geht. so richtig traue ich dem Braten zwar nicht, aber no risk no fun !!
gibt es auch ein Gegenteil zu LAG? also schaue dir den nächsten Wert an ?
gibt es auch ein Gegenteil zu LAG? also schaue dir den nächsten Wert an ?
Code: Alles auswählen
IF(anfall = 1 and LAG(anfall) = 1 and LAG(anfall,2) = 0 and
vpnr = LAG(vpnr)) Attacke= 1 .
EXECUTE .
IF(anfall = 0 and LAG(anfall) = 1 and LAG(anfall,2) = 0 and
vpnr = LAG(vpnr)) Attacke = 1 .
EXECUTE .
iF(anfall = 1 and LAG(anfall) = 1 and
vpnr ~= LAG(vpnr)) Attacke = 1 .
EXECUTE .
if(anfall = 1 and Lag(anfall)= 0 and wtag=56) =1.
Execute
-
- Beiträge: 1733
- Registriert: 11.03.2010, 22:28
Solche Sachen solltest Du von vornherein präzise darstellen, da in dem Fall die ganze Syntax einfacher ist. Wenn anfall = 1 und vorhergehender Wert = 0, dann serienbeginn = 1 . wenn anfall = 1 und tag = 1, dann serienbeginn = 1 .Henrikx hat geschrieben:klappt soweit ganz gut. Vielen Dank!
wie muss ich die syntax verändern damit er serien (sind ja dann genau genommen keine mehr) die nur einen tag lang sind ebenfalls als 1 darstellt?
Umgekehrte LAG gibt es nicht, Du kannst Dir damit behelfen, die Datei umgekehrt zu sortieren.