Search code examples
pythonspss

Python in SPSS - KEEP variables


I have selected the variables I need based on a string within the variable name. I'm not sure how to keep only these variables from my SPSS file.

begin program.
import spss,spssaux
spssaux.OpenDataFile(r'XXXX.sav')
target_string = 'qb2'
variables = [var for var in spssaux.GetVariableNamesList() if target_string in var]
vars = spssaux.VariableDict().expand(variables)
nvars=len(vars)
for i in range(nvars):
    print vars[i]
spss.Submit(r"""
SAVE OUTFILE='XXXX_reduced.sav'.
ADD FILES FILE=* /KEEP \n %s.
""" %(vars))
end program.

The list of variables that it prints out is correct, but it's falling over trying to KEEP them. I'm guessing it's something to do with not activating a dataset or bringing in the file again as to why there's errors?


Solution

    1. You'll want to use the ADD FILES FILE command before the SAVE for your saved file to be the "reduced" file
    2. I think your very last line in the python program should be trying to join the elements in the list vars. For example: %( " ".join(vars) )