Seite 1 von 1

Datensätze aufsummieren

BeitragVerfasst: Mo 2. Okt 2017, 15:20
von Maike
Hallo,

Ich habe GPS-Daten geladen in zeitl. Reihenfolge und mit Entfernungen (vom vorhergegangenen Punkt), sowie einer Variable Start (Markierung des Fahrtstarts).
Ich möchte nun einen neue Variable "Zielvariable" berechnen. Diese soll die Entfernung aufsummieren und neu beginnen, wenn Start = 1. Kann mir jemand helfen?

"-" einfach wegdenken bitte. Ansonsten soll es dann so aussehen.

Start---Entf----Zielvariable
1--------1.4-----1.4
.--------2.1-----3.5
.--------1.4-----4.9
.--------2.4-----7.3
1--------3.1-----3.1
.--------4.1-----7.2
.--------2.2-----9.2
1--------3.1-----3.1

Re: Datensätze aufsummieren

BeitragVerfasst: Mo 2. Okt 2017, 17:17
von Maike
Ich hab schon folgendes ausprobiert:

if (Start = 1) Zielvariable = 0.
if (Start ~= 1) Zielvariable = SUM(Entf,LAG(Zielvariable)).
EXECUTE .

Das Ergebnis sind leider missing values bei Start ~=1
Wenn ich :

Compute Zielvariable = SUM(Entf,LAG(Zielvariable)).
EXECUTE .

eingebe, wird zwar aufsummiert, aber dann fehlt mir ja noch die Bedingung, dass bei Start = 1 die Summe neu beginnen soll.
Ich verstehe nicht, warum es nicht funktioniert.

Liebe Grüße, Maike

Re: Datensätze aufsummieren

BeitragVerfasst: Mo 2. Okt 2017, 21:42
von Maike
ich habe eine weitere Variable erzeugt Fnum, die alle Fahrten mit einer Nummer kodiert (11111111,22222222222222,3333333333).

und dann funktioniert es überraschender Weise mit:

if (Fnum ~= LAG(Fnum)) Zielvariable = 0.
if (Fnum = LAG (Fnum)) Zielvariable = SUM(Entf,LAG(Zielvariable)).
EXECUTE.

ich weiß nicht so reicht warum es jetzt funktioniert, aber vielleicht hilft es ja trotzdem jemandem.

Liebe Grüße

Re: Datensätze aufsummieren

BeitragVerfasst: Mi 4. Okt 2017, 09:01
von ponderstibbons
ich weiß nicht so reicht warum es jetzt funktioniert,

Deine ursprüngliche Bedingung if (Start ~= 1) soll in etwas heißen, Vergleiche den Wert in "Start" mit dem Wert 1. Wenn "Start" jedoch einen missing value enthält, also erst gar keinen Wert, der mit 1 verglichen werden könnte, dann ist der Befehl nicht durchführbar und es ergibt sich ein missing value.