Duplizieren von Fällen automatisieren?

Alles rund um SPSS Syntax und Programmierung.

Duplizieren von Fällen automatisieren?

Beitragvon miner » Di 19. Sep 2017, 15:19

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
Zuletzt geändert von miner am Di 19. Sep 2017, 15:26, insgesamt 2-mal geändert.
miner
 
Beiträge: 86
Registriert: Do 12. Sep 2013, 16:54
Danke gegeben: 6
Danke bekommen: 0 mal in 0 Post

Re: Duplizieren von Fällen automatisieren?

Beitragvon miner » Di 19. Sep 2017, 15:25

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.
miner
 
Beiträge: 86
Registriert: Do 12. Sep 2013, 16:54
Danke gegeben: 6
Danke bekommen: 0 mal in 0 Post

Re: Duplizieren von Fällen automatisieren?

Beitragvon ponderstibbons » Mi 20. Sep 2017, 10:11

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
ponderstibbons
 
Beiträge: 2523
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 2
Danke bekommen: 257 mal in 256 Posts

Re: Duplizieren von Fällen automatisieren?

Beitragvon miner » Mi 20. Sep 2017, 23:02

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?
miner
 
Beiträge: 86
Registriert: Do 12. Sep 2013, 16:54
Danke gegeben: 6
Danke bekommen: 0 mal in 0 Post


Zurück zu SPSS Syntax

Wer ist online?

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

cron