如何在SPSS中循环变量?我想避免代码重复

chu*_*son 5 statistics loops spss

是否有一种"本地"SPSS方式来循环访问某些变量名称?我想做的就是获取变量列表(我定义)并为它们运行相同的过程:

伪代码 - 不是一个很好的例子,但是得到了重点......

for i in varlist['a','b','c']
do
  FREQUENCIES VARIABLES=varlist[i] / ORDER=ANALYSIS.
end
Run Code Online (Sandbox Code Playgroud)

我注意到人们似乎只是使用R或Python SPSS插件来实现这个基本的阵列功能,但我不知道我能在多长时间内完成SPSS安装的配置(如果有的话).

SPSS必须有一些原生的方式来做到这一点......对吗?

djh*_*rio 7

循环变量有两种简单的解决方案(与在SPSS中使用Python相比更容易).

1) DO REPEAT-END REPEAT

缺点是您可以DO REPEAT-END REPEAT主要仅用于数据转换 - 例如COMPUTE,RECODE等等.不允许频率.例如:

DO REPEAT R=REGION1 TO REGION5.
COMPUTE R=0.
END REPEAT.
Run Code Online (Sandbox Code Playgroud)

2)DEFINE-!ENDDEFINE(宏观设施)

您可以使用宏命令在变量循环中执行频率.例如:

DEFINE macdef (!POS !CHAREND('/'))
!DO !i !IN (!1)
frequencies variables = !i.
!DOEND
!ENDDEFINE.

macdef VAR1 VAR2 VAR3  /.
Run Code Online (Sandbox Code Playgroud)


小智 6

如果我正确理解了这个问题,则可能不需要使用循环结构.使用VARIABLES子命令(如FREQUENCIES)的SPSS命令允许您指定多个变量.

FREQUENCIES的基本语法是:

FREQUENCIES
    VARIABLES= varlist [varlist...] 
Run Code Online (Sandbox Code Playgroud)

其中[varlist]是单个变量名称,多个以空格分隔的变量名称,使用TO关键字指定的一系列连续变量,关键字ALL或先前选项的组合.

例如:

FREQUENCIES VARIABLES=VARA

FREQUENCIES VARIABLES=VARA VARB VARC

FREQUENCIES VARIABLES=VARA TO VARC     

FREQ VAR=ALL

FREQ VAR=VARA TO VARC VARM VARX TO VARZ
Run Code Online (Sandbox Code Playgroud)

请参阅http://support.spss.com/ProductsExt/SPSS/Documentation/SPSSforWindows/index.htm上的SPSS Statistics 17.0命令语法参考.

请注意,自从我实际使用SPSS以来已经有好几年了.