Hello,
I need assistance with an SPSS macro and hope someone here can help me.
In my survey, a set of questions was asked about a variable text display for different brands (e.g. Audi, BMW,...). For example, the question was: How satisfied are you with the quality of [main brand]?
The results were each written into a variable (here F309_1 to F309_14). However, in the data set I would like to have the values of these basic variables transferred to individual, brand-specific variables.
I wrote the following macro for this.
DEFINE markenmacro (AnzahlMarken !TOKENS(1) / Markenvariable !TOKENS(1) / Basisvariable !TOKENS(1) / MaxItems !TOKENS(1))
!DO !i = 1 !TO !AnzahlMarken.
DO IF !Markenvariable = !i.
RECODE !concat(!Basisvariable,_,1) to !concat(!Basisvariable,_,!MaxItems) (else = copy) into !concat(!Basisvariable,!i,_,1) to !concat(!Basisvariable,!i,_,!MaxItems).
ELSE IF !Markenvariable ne !i.
RECODE !concat(!Basisvariable,_,1) to !concat(!Basisvariable,_,!MaxItems) (else = 99) into !concat(!Basisvariable,!i,_,1) to !concat(!Basisvariable,!i,_,!MaxItems).
end if.
!DOEND.
!ENDDEFINE.
markenmacro AnzahlMarken = 30 Markenvariable = F308 Basisvariable = F309 MaxItems = 14.
exe.
*Explanations:
*AnzahlMarken= Number of brands
*Markenvariable= Variable containing the queried brand
*Basisvariable= Variable to be split into separate variables
*MaxItems = Number of items of the base variable.
And the macro actually works. As a result, I get the variables F3091_1 to F3091_14 for brand 1, F3092_1 to F3092_14 for brand 2, etc.
Now, however, the result variables should not be named with numbers but with letters. So it should be F309a_1 to F309a_14, F309b_1 to F309b_14 etc.
And at this step I am stuck. I would need to include a loop that goes through the letters from 'a' to 'xyz' in addition to the brand loop and selects the next letter each time. But I have no idea how to implement this in a macro.
Does anyone here have a solution for me?
Thank you very much in advance and best regards,
Lisa
------------------------------
------
------------------------------