Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops SPSS宏自动执行顺序变量引用_Loops_Macros_Spss - Fatal编程技术网

Loops SPSS宏自动执行顺序变量引用

Loops SPSS宏自动执行顺序变量引用,loops,macros,spss,Loops,Macros,Spss,我很难在SPSS中使用一个不基于变量的简单循环 简而言之,我想写作 !sequentialVars varStr=/Var/ i=/20/. 或类似,并获得: Var1 Var2 Var3 Var4 Var5。。。Var19 Var20 放入一个cTable或其他任何接受一个变量名字符串的地方 在虚拟VB中,它将是: varString = "AnyVarName" for i=1 to 20 newVarList = concatenate(newVarList," ",varStrin

我很难在SPSS中使用一个不基于变量的简单循环

简而言之,我想写作

!sequentialVars varStr=/Var/ i=/20/.
或类似,并获得: Var1 Var2 Var3 Var4 Var5。。。Var19 Var20 放入一个cTable或其他任何接受一个变量名字符串的地方

在虚拟VB中,它将是:

varString = "AnyVarName"
for i=1 to 20
  newVarList = concatenate(newVarList," ",varString, i)
next i
我甚至不能在SPSS循环中回显I,更不用说连接它了


谢谢大家!

下面的示例演示如何在宏中创建变量列表。它所做的是从1循环到n,并连接当前变量末尾的数字(
base\u i
)。然后,
X1+X2….
只需为循环中的每个变量添加。宏采用arguments基变量和项数

*making filler data frame.
data list free / V1 (F1.0).
begin data
1
3
5
end data.
dataset name input.

*making a vector list.
vector X(5,F1.0).
do repeat X = X1 to X5.
compute X = RV.BERNOULLI(0.5).
end repeat.

*what I want to do essentially.
ctables
/table X1 + X2.

*now to demonstrate looping through list.
DEFINE !loop_ctable (base = !TOKENS(1)
                     /n = !TOKENS(1))

!DO !I = 1 !TO !n
    !IF (!I = 1) !then
        !LET !base_stub = !concat(!base,"1")
    !ELSE
        !LET !base_i = !CONCAT(!base,!I)
        !LET !base_stub = !concat(!base_stub," + ",!base_i)
    !IFEND
!DOEND

ctables
/table !base_stub.

!ENDDEFINE.

set mprint on.

!loop_ctable base = X n = 5.

我可以想出一种循环字母的方法(至少是通过字母表的首字母),不过希望这样就足够了。

在PDF的第130页有一个功能相当的例子,创建连接的存根和标题表。这将有助于连接,但除非我完全忽略它,首先,我似乎找不到如何生成顺序变量。这不是“+”部分,而是V1的数字。这也是Va Vb Vc的字母。这有意义吗?好的,这有意义,如果后缀是一个不会太难的数字(字母我不太确定)。我会看看我是否能迅速想出一个例子。大多数不需要+的项目都是不需要的,因为人们可以经常使用
VAR1到VAR50
等。是否可以在宏之外使用ctables命令,以便在类似这样的不同情况下使用相同的命令?CTABLE/桌子!循环表基数=xn=5。不,它不是@ARobertson。也许如果你把你的目标弄清楚一点,我会更有帮助。