遍历动态变量名
looping through dynamic variable names
我希望能够在 SPSS 中循环访问一系列类似命名的变量,只需更改几个参数即可。例如,我有变量
q7_22_react_a
q7_22_react_b
q7_22_react_c
q7_23_react_a
q7_23_react_b
q7_23_react_c
注意编号和字母的变化。我试过了,但它没有很好地解析“7_22”:
define !test (numbers= !chardend('/') / letters= !cmdend).
!do !i !in (!numbers)
frequencies variables !concat(q,!i,'_react_',!letters)
!doend
!enddefine.
!test numbers= 7_22 / letters= a.
想法?
我不知道是否有真正的解决方案,但我可以想到一些解决方法。想法是防止令牌被拆分 - 通过以字母开头:
define !test2 (numbers= !chardend('/') / letters= !cmdend).
!do !i !in (!numbers)
frequencies variables !concat(!i,'_react_',!letters)
!doend
!enddefine.
!test2 numbers= q7_22 / letters= a.
或添加引号:
define !test3 (numbers= !chardend('/') / letters= !cmdend).
!do !i !in (!numbers)
frequencies variables !concat('q',!unquote(!i),'_react_',!letters)
!doend
!enddefine.
!test3 numbers= '7_22' / letters= a.
这是一个简单的解决方案。
SPSSINC SELECT VARIABLES MACRONAME="!react"
/PROPERTIES PATTERN = ".*react".
freq !react.
模式是一个正则表达式 - 这里是包含 "react" 的任何名称。
SPSSINC SELECT VARIABLES 是一个扩展命令,通常与最新版本的 Statistics 一起安装,或者可从 SPSS Community 站点获得。它有一个出现在“实用程序”菜单上的对话框
define !test (numbers= !chardend('/') / letters= !cmdend).
!do !i !in (!numbers)
frequencies variables !concat(q,!UNQUOTE(!i),'_react_',!letters).
!doend
!enddefine.
SET MPRINT ON.
!test numbers= '7_22' / letters= a.
Resulting Syntax ;-)))
frequencies variables q7_22_react_a.
我希望能够在 SPSS 中循环访问一系列类似命名的变量,只需更改几个参数即可。例如,我有变量
q7_22_react_a q7_22_react_b q7_22_react_c q7_23_react_a q7_23_react_b q7_23_react_c
注意编号和字母的变化。我试过了,但它没有很好地解析“7_22”:
define !test (numbers= !chardend('/') / letters= !cmdend).
!do !i !in (!numbers)
frequencies variables !concat(q,!i,'_react_',!letters)
!doend
!enddefine.
!test numbers= 7_22 / letters= a.
想法?
我不知道是否有真正的解决方案,但我可以想到一些解决方法。想法是防止令牌被拆分 - 通过以字母开头:
define !test2 (numbers= !chardend('/') / letters= !cmdend).
!do !i !in (!numbers)
frequencies variables !concat(!i,'_react_',!letters)
!doend
!enddefine.
!test2 numbers= q7_22 / letters= a.
或添加引号:
define !test3 (numbers= !chardend('/') / letters= !cmdend).
!do !i !in (!numbers)
frequencies variables !concat('q',!unquote(!i),'_react_',!letters)
!doend
!enddefine.
!test3 numbers= '7_22' / letters= a.
这是一个简单的解决方案。
SPSSINC SELECT VARIABLES MACRONAME="!react"
/PROPERTIES PATTERN = ".*react".
freq !react.
模式是一个正则表达式 - 这里是包含 "react" 的任何名称。 SPSSINC SELECT VARIABLES 是一个扩展命令,通常与最新版本的 Statistics 一起安装,或者可从 SPSS Community 站点获得。它有一个出现在“实用程序”菜单上的对话框
define !test (numbers= !chardend('/') / letters= !cmdend).
!do !i !in (!numbers)
frequencies variables !concat(q,!UNQUOTE(!i),'_react_',!letters).
!doend
!enddefine.
SET MPRINT ON.
!test numbers= '7_22' / letters= a.
Resulting Syntax ;-)))
frequencies variables q7_22_react_a.