Automatisierte Variablengenerierung

Fragen und Diskussionen rund um die Arbeit mit SPSS. Für allgemeine Statistik-Themen, die nicht mit SPSS zusammenhängen, bitte das Statistik-Forum nutzen.
Antworten
gremlin17
Beiträge: 5
Registriert: 17.02.2010, 17:00

Automatisierte Variablengenerierung

Beitrag von gremlin17 »

Hallo,

ich brauche eine Syntax zu folgendem Problem.

Ich möchte eine Anzahl x an Variablen generieren, die mit einer fortlaufenden Nummer versehen werden. Das sollte dann natürlich in einer Schleife passieren, damit man nicht jede Variable einzeln per Syntax erstellen muss. Dann hätte ich nichts gewonnen :)

Diese sollten dann so aussehen:

VariableX

X steht hierbei für eine fortlaufende Nummer 1,2,3...

Kann mir einer von euch Füchsen helfen? Vielen Dank :)
georggraph
Beiträge: 114
Registriert: 30.03.2009, 09:39

Beitrag von georggraph »

Hallo,

das lässt sich über ein Makro lösen:

Code: Alles auswählen

* Makrodefinition.
DEFINE !Var (!POSITIONAL !TOKEN(1)).
!DO !i = 1 !TO !1.
 !CONCAT('COMPUTE Variable', !i, ' = $SYSMIS.').
!DOEND.
EXE.
!ENDDEFINE.

* Makroaufruf.
!Var 5.
Die Syntax legt 5 neue, leere Variablen mit den Namen Variable1, Variable2, ..., in Deiner Datei an.
Willst Du eine andere Anzahl Variablen haben, musst Du den Parameter beim Makroaufruf abändern.

Viele Grüße,
georggraph
"Ein kaum merkliches Kopfnicken verriet dann, dass er nicht die Absicht habe, diese Frage zu beantworten, und es war Sache des Fragestellers, seinen eigenen Fehler zu erkennen und die Frage neu zu formulieren." (F.Kafka: Der Verschollene)
gremlin17
Beiträge: 5
Registriert: 17.02.2010, 17:00

Beitrag von gremlin17 »

Vielen Dank, das funktioniert schon mal prima. Wie könnte ich das Variablenlabel auch noch dementsprechend automatisiert mit erstellen lassen?
georggraph
Beiträge: 114
Registriert: 30.03.2009, 09:39

Beitrag von georggraph »

Hallo,

dazu muss das Makro wie folgt ergänzt werden:

Code: Alles auswählen

* Makrodefinition.
DEFINE !Var (!POSITIONAL !TOKEN(1)). 
!DO !i = 1 !TO !1. 
 !CONCAT('COMPUTE Variable', !i, ' = $SYSMIS.'). 
 !CONCAT('VARIABLE LABEL Variable', !i, ' ', !QUOTE(!CONCAT('Variable ', !i))). 
!DOEND. 
EXE. 
!ENDDEFINE. 

* Makroaufruf. 
!Var 5.
Es wird jetzt gleichzeitig mit dem Erzeugen der 5 leeren Variablen jeweils ein Variablenlabel mit der Bezeichnung "Variable X" generiert, wobei "X" für die fortlaufende Nummer der jeweiligen Variablen steht.

Viele Grüße,
gg
"Ein kaum merkliches Kopfnicken verriet dann, dass er nicht die Absicht habe, diese Frage zu beantworten, und es war Sache des Fragestellers, seinen eigenen Fehler zu erkennen und die Frage neu zu formulieren." (F.Kafka: Der Verschollene)
gremlin17
Beiträge: 5
Registriert: 17.02.2010, 17:00

Beitrag von gremlin17 »

Das ist famos. Vielen, vielen Dank!
Anzeige:Statistik und SPSS: Die besten Bücher
Als Buch oder E-Book - Jetzt bestellen
spss datenanalyse
SPSS - Moderne Datenanalyse - Jetzt bestellen!
statistik datenanalyse
Statistik - Der Weg zur Datenanalyse - Jetzt bestellen!
Antworten