SPSS 语法中的动态变量名称引用
Dynamic variable name referencing in SPSS syntax
我想对变量组执行某些操作。每个组的名称中都有一个特定的索引。我不想重复每个组的语法。有没有办法动态引用变量名?
语法如下。 207是每组变量变化的索引。
DO REPEAT aa= M9_207_1 to M9_207_99.
.....
END REPEAT.
EXECUTE.
听起来你可以做一些循环操作。我经常在 R 中看到这种问题。我认为同样的想法也适用于 SPSS。通常,我会尝试这样做:
for i in (1:207) {
for j in (1:99) {
M9[i,j] = ...
certain actions...
}
}
希望对您有所帮助。
您可以使用宏来执行此操作。
首先定义宏:
define !MyMacro ()
!do !ndx=201 !to 207
DO REPEAT aa= !concat("M9_",!ndx,"_1") to !concat("M9_",!ndx,"_99").
.....
END REPEAT.
EXECUTE.
!doend
!enddefine.
然后调用它:
!MyMacro.
此处定义的宏将运行通过索引 201、202、203 等'。如果您需要更具体的索引列表,可以这样定义宏:
define !MyMacro (!pos=!cmdend)
!do !ndx !in(!1)
DO REPEAT aa= !concat("M9_",!ndx,"_1") to !concat("M9_",!ndx,"_99").
.....
END REPEAT.
EXECUTE.
!doend
!enddefine.
然后调用它,给出索引(你必须单独指定每个索引):
!MyMacro 207 311 501 502 503 504 785.
我想对变量组执行某些操作。每个组的名称中都有一个特定的索引。我不想重复每个组的语法。有没有办法动态引用变量名?
语法如下。 207是每组变量变化的索引。
DO REPEAT aa= M9_207_1 to M9_207_99.
.....
END REPEAT.
EXECUTE.
听起来你可以做一些循环操作。我经常在 R 中看到这种问题。我认为同样的想法也适用于 SPSS。通常,我会尝试这样做:
for i in (1:207) {
for j in (1:99) {
M9[i,j] = ...
certain actions...
}
}
希望对您有所帮助。
您可以使用宏来执行此操作。
首先定义宏:
define !MyMacro ()
!do !ndx=201 !to 207
DO REPEAT aa= !concat("M9_",!ndx,"_1") to !concat("M9_",!ndx,"_99").
.....
END REPEAT.
EXECUTE.
!doend
!enddefine.
然后调用它:
!MyMacro.
此处定义的宏将运行通过索引 201、202、203 等'。如果您需要更具体的索引列表,可以这样定义宏:
define !MyMacro (!pos=!cmdend)
!do !ndx !in(!1)
DO REPEAT aa= !concat("M9_",!ndx,"_1") to !concat("M9_",!ndx,"_99").
.....
END REPEAT.
EXECUTE.
!doend
!enddefine.
然后调用它,给出索引(你必须单独指定每个索引):
!MyMacro 207 311 501 502 503 504 785.