2016-05-11 24 views
1

Ich möchte in der Lage sein, eine Reihe von ähnlich benannten Variablen in SPSS durchlaufen, nur ein paar Parameter ändern. Zum Beispiel habe ich VariablenSchleife durch dynamische Variablennamen

q7_22_react_a q7_22_react_b q7_22_react_c q7_2 _react_a q7_2 _react_b q7_2 _react_c

Beachten Sie die Nummerierung und Buchstaben Änderungen. Ich habe versucht, diese aber es ist nicht die „7_22“ Parsen sehr gut:

define !test (numbers= !chardend('/')/letters= !cmdend). 
!do !i !in (!numbers) 
    frequencies variables !concat(q,!i,'_react_',!letters) 
!doend 
!enddefine. 

!test numbers= 7_22/letters= a. 

Gedanken?

+0

Nizza! Ich bin noch nicht darüber gestolpert ... Ich habe noch mehr überprüft und festgestellt, dass Token aufgeteilt werden, wenn sie mit einer Zahl oder einem Unterstrich beginnen. –

Antwort

1

Ich weiß nicht, ob es eine echte Lösung gibt, aber ich kann mir ein paar Workarounds vorstellen. Die Idee wäre, das Token zu vermeiden, dass sich trennen - entweder indem sie sie mit einem Buchstaben beginnen:

define !test2 (numbers= !chardend('/')/letters= !cmdend). 
!do !i !in (!numbers) 
    frequencies variables !concat(!i,'_react_',!letters) 
!doend 
!enddefine. 

!test2 numbers= q7_22/letters= a. 

oder durch Hinzufügen von Anführungszeichen:

define !test3 (numbers= !chardend('/')/letters= !cmdend). 
!do !i !in (!numbers) 
    frequencies variables !concat('q',!unquote(!i),'_react_',!letters) 
!doend 
!enddefine. 

!test3 numbers= '7_22'/letters= a. 
+0

Danke. Ich versuchte und gelang mit einer ähnlichen Problemumgehung mit den Namenskonventionen. Ich stolperte über einen alten IBM-Thread und es sieht so aus, als ob es Unterstriche in den Makrolisten gibt, die SPSS als verschiedene Variablen trennt. Ein echter Schmerz, aber lösbar. – vashts85

1

Hier ist eine einfache Lösung.

SPSSINC SELECT VARIABLES MAKRONAME = "! React" /EIGENSCHAFTEN PATTERN = ". * React".

Freq! Reagieren.

Das Muster ist ein regulärer Ausdruck - hier jeder Name, der "reagieren" enthält. SPSSINC SELECT VARIABLES ist ein Erweiterungsbefehl, der normalerweise in den neuesten Versionen mit Statistics oder auf der SPSS Community-Site verfügbar ist. Es hat ein Dialogfeld, das im Menü Dienstprogramme angezeigt wird

1
define !test (numbers= !chardend('/')/letters= !cmdend). 
    !do !i !in (!numbers) 
     frequencies variables !concat(q,!UNQUOTE(!i),'_react_',!letters). 
    !doend 
!enddefine. 
SET MPRINT ON. 
!test numbers= '7_22'/letters= a. 

Resulting Syntax ;-))) 
frequencies variables q7_22_react_a.