Python 在 SPSS 中 - KEEP 变量
Python in SPSS - KEEP variables
我根据变量名中的字符串选择了我需要的变量。我不确定如何从我的 SPSS 文件中只保留这些变量。
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.
它打印出的变量列表是正确的,但在试图保留它们时失败了。我猜这与未激活数据集或再次导入文件有关,为什么会出现错误?
您是否尝试过颠倒 SAVE OUTFILE 和 ADD FILES 命令的顺序?我没有通过 Python 在 SPSS 中 运行 这个,但是在标准 SPSS 中,您的语法会将文件写入磁盘,然后 select 内存中活动版本的变量 -因此,如果您稍后访问保存的文件,它将是您 selected 变量之前的版本。
如果这不起作用,你能解释一下摔倒试图保留它们的意思吗?
- 您需要在
SAVE
之前使用 ADD FILES FILE
命令将您保存的文件设为 "reduced" 文件
- 我认为您在 python 程序中的最后一行应该尝试加入列表
vars
中的元素。例如:%( " ".join(vars) )
看来问题已解决,但我想指出另一种无需编写任何 Python 代码即可完成的解决方案。扩展命令 SPSSINC SELECT VARIABLES 定义了一个基于变量属性的宏。这可以在 ADD FILES 命令中使用。
SPSSINC SELECT 变量 MACRONAME="!selected"
/属性模式 = ".*qb2".
添加文件 /FILE=* /KEEP !已选中。
SELECT VARIABLES 命令实际上是在Python 中实现的。它的选择标准还可以包括其他元数据,例如类型和测量级别。
我根据变量名中的字符串选择了我需要的变量。我不确定如何从我的 SPSS 文件中只保留这些变量。
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.
它打印出的变量列表是正确的,但在试图保留它们时失败了。我猜这与未激活数据集或再次导入文件有关,为什么会出现错误?
您是否尝试过颠倒 SAVE OUTFILE 和 ADD FILES 命令的顺序?我没有通过 Python 在 SPSS 中 运行 这个,但是在标准 SPSS 中,您的语法会将文件写入磁盘,然后 select 内存中活动版本的变量 -因此,如果您稍后访问保存的文件,它将是您 selected 变量之前的版本。 如果这不起作用,你能解释一下摔倒试图保留它们的意思吗?
- 您需要在
SAVE
之前使用ADD FILES FILE
命令将您保存的文件设为 "reduced" 文件 - 我认为您在 python 程序中的最后一行应该尝试加入列表
vars
中的元素。例如:%( " ".join(vars) )
看来问题已解决,但我想指出另一种无需编写任何 Python 代码即可完成的解决方案。扩展命令 SPSSINC SELECT VARIABLES 定义了一个基于变量属性的宏。这可以在 ADD FILES 命令中使用。
SPSSINC SELECT 变量 MACRONAME="!selected"
/属性模式 = ".*qb2".
添加文件 /FILE=* /KEEP !已选中。
SELECT VARIABLES 命令实际上是在Python 中实现的。它的选择标准还可以包括其他元数据,例如类型和测量级别。