Seite 1 von 1

Duplizieren von Fällen automatisieren?

BeitragVerfasst: Di 19. Sep 2017, 15:19
von miner
Hi,

ich habe einen Datensatz mit dem folgenden Aufbau

Code: Alles auswählen
id var1 Anzahl
1   20   2
2   50   3
3   80   1
... ...   ...


Die Anzahl "gleichartiger" Fälle ist in der Variable ANZAHL codiert, anstatt dass, wie es richtig wäre, weitere Zeilen angelegt sind. Der oben stehende Datensatz soll also in einen Datensatz mit der folgenden Struktur überführt werden:

Code: Alles auswählen
id var1 Anzahl
1   20   1
1   20   1
2   50   1
2   50   1
2   50   1
3   80   1
... ...   ...


Die Variable ANZAHL kann anschließend gelöscht werden, so dass sich letzten Endes der folgende Datensatz ergibt:


id var1
1 20
1 20
2 50
2 50
2 50
3 80
... ... ...


Mit welchem Syntax-Befehl kann ich das ggf. bewerkstelligen? (oder wo finde ich den entsprechenden Befehl in der GUI?).


Grüße
miner

Re: Duplizieren von Fällen automatisieren?

BeitragVerfasst: Di 19. Sep 2017, 15:25
von miner
Oder, alternativ:

Mit welchem Befehl kann ich Fälle duplizieren (kopieren und einfügen?). Dann müsste ich diesen Befehl nur noch in eine while-Schleife packen. Mal in Pseudocode dargestellt:

Code: Alles auswählen

BEGIN
Für alle Fälle im Datensatz mache folgendes
{
     i = 1.
     WHILE i kleiner ANZAHL DO
     {
     copy ganze Zeile und füge weitere Zeile mit diesen Werten ein.
     i = i +1.
     }
Lösche die Variable ANZAHL aus dem Datensatz.
}
END.

Re: Duplizieren von Fällen automatisieren?

BeitragVerfasst: Mi 20. Sep 2017, 10:11
von ponderstibbons
Angenommen, der (vorher bekannte) Maximalwert von "Anzahl" ist 3 und "var1" würde umbenannt in "wert", dann wäre ein Ansatz:

vector var_(3) .
loop #index = 1 to anz .
+ COMPUTE var_(#index) = wert.
END LOOP .
EXECUTE .

Dann das Ergebnis mit "Datei umstrukturieren" ("Variablen zu Fällen") in die gewünschte lange Form bringen.

Mit freundlichen Grüßen

PonderStibbons

Re: Duplizieren von Fällen automatisieren?

BeitragVerfasst: Mi 20. Sep 2017, 23:02
von miner
Hi ponderstibbons,

besten Dank für den Lösungsansatz! Ich werde das ausprobieren!

miner


PS: Kann es sein, dass der Danke-Button nicht mehr da ist, oder habe ich Tomaten auf den Augen?