我有多个具有多个变量的spss文件(col1,col2,... col150)。我正在尝试创建一个通用代码,以使用VARSTOCVASES重组文件。在这种情况下,我需要保留3个变量(col1,col34,col66),这些变量在所有文件中都是通用的,但其余变量是不同的。我知道通常的方式是将所有剩余变量添加到MAKE子命令中。我正在添加波纹管
VARSTOCVASES
/MAKE VariableName1 FROM Col1 Col2 Col3 ....etc(except 3)
/INDEX=VariableName(VariableName1)
/KEEP=Col1 Col34 Col66
我想使用(SPSSINC SELECT VARIABLES)命令创建一些变量列表,我有这个主意,但我没有相同的示例。这个Select查询必须很小,这意味着该查询应该动态选择除这些3(Col1 Col34 Col66)以外的所有变量,因为我具有不同的SPSS文件,并且这3(Col1 Col34 Col66)变量相同,但其余变量不同,并且都包含不同数量的变量。
如果我有一个变量列表(通过排除3来动态生成),则可以在MAKE子命令中指出该变量。请任何人帮助我。
答案 0 :(得分:2)
一种解决方法是重命名这些特定的列,然后选择以“ col”开头的所有其他变量:
rename variables (col1 col34 col66=var1 var34 var66).
spssinc select variables MACRONAME = "!allCOL"
/PROPERTIES PATTERN="Col*".
现在所有名称以“ Col”开头的变量都在名为“!allCOL”的列表中,您可以在语法中使用它,例如:
VARSTOCVASES
/MAKE VariableName1 FROM !allCOL /INDEX=VariableName(VariableName1) .
编辑:另一种解决方案 仅当您要在列表上的所有变量都有一个恒定模式时,以上解决方案才有效。如果不是这种情况,则可以使用以下解决方案命名不需要的变量,然后将其余所有变量都放在列表中。
* first we define a new attribute in which we mark the
variables we don't want on the list.
VARIABLE ATTRIBUTE VARIABLES=Car_Model_1 Car_Model_2
ATTRIBUTE=IncludeInMake ("no").
* now we create the list, leaving out the unwanted variables.
spssinc select variables MACRONAME = "!forMake"
/ATTRVALUES NAME=IncludeInMake VALUE="".
VARSTOCVASES /MAKE Val FROM !forMake /INDEX=var(val) .