SPSS语法中的动态变量名称引用

时间:2017-04-20 02:40:36

标签: spss

我想对变量组执行某些操作。每个组在名称中都有一个特定的索引。我不想重复每个组的语法。有没有办法动态引用变量名?

以下是语法。 207是每组变量的变化指数。

DO REPEAT aa= M9_207_1 to M9_207_99.
.....
END REPEAT.
EXECUTE.

2 个答案:

答案 0 :(得分:1)

您可以使用宏来执行此操作。

首先定义宏:

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。

答案 1 :(得分:0)

听起来你可以做一些循环操作。我经常在R中看到这种问题。我认为同样的想法也适用于SPSS。通常,我会尝试这个:

for i in (1:207) {
  for j in (1:99) {
    M9[i,j] = ...
    certain actions...
  }
}

希望这有帮助。