repeat - SPSS:使用不同数量的匹配变量进行重复

标签 repeat spss

我有一个数据集,其中每个案例都有以下一组变量:

VarA1.1 到 VarA25.185(共 4625 个变量)
VarB.1 至 VarB.185(共 185 个变量)

对于每种情况,VarA1.1、VarA2.1、VarA3.1 等都链接到同一个 VarB.1。

我想使用 DO REPEAT 函数来使用 VarA 和 VarB 搜索每个 .1 实例。

示例代码:

DO REPEAT VarA = VarA1.1 to VarA25.185
/ VarB = VarB.1 to VarB.185.
if (VarA = X) AND ((VarB-Y)<0)
VarC = Z.
END REPEAT.
EXE.

然而,似乎是因为 VarA 和 VarB 的重复列表中有不同数量的变量,它们没有配对。我想将每个 VarA#(1-25).1 与 VarB.1、每个 VarA#(1-25).2 与每个 VarB.2 等关联到 VarB.185,以便在重复函数中正确使用变量配对。

谢谢!

最佳答案

另一种方法是使用 LOOP在外面和一个 DO REPEAT在里面。所以这里有一些示例数据,只有三个 A 变量从 1 到 10。

SET SEED 10.
INPUT PROGRAM.
LOOP Id = 1 TO 100.
END CASE.
END LOOP.
END FILE.
END INPUT PROGRAM.
DATASET NAME Sim.

*Making random data.
VECTOR A1.(10).
VECTOR A2.(10).
VECTOR A3.(10).
VECTOR B.(10).
NUMERIC X Y.
DO REPEAT a = A1.1 TO Y.
  COMPUTE a = RV.BERNOULLI(0.5).
END REPEAT.
EXECUTE.

所以这里是你要注意的部分。您的 DO REPEAT当前循环遍历 25 个变量。虽然这会切换它,所以 LOOP部分超过了 25 个变量,但 DO REPEAT遍历每个 A 向量。
VECTOR A1 = A1.1 TO A1.10.
VECTOR A2 = A2.1 TO A2.10.
VECTOR A3 = A3.1 TO A3.10.
VECTOR B = B.1 TO B.10.
VECTOR C.(10).
LOOP #i = 1 TO 10.
  DO REPEAT A = A1 A2 A3.
    IF (A(#i) = X) AND (B(#i)-Y<0) C.(#i) = B(#i).
  END REPEAT.
END LOOP.
EXECUTE.

代码高尔夫可能不会击败宏方法,因为您必须定义所有这些 VECTOR声明。但我认为这是一种在概念上清晰的编写程序的方式。

关于repeat - SPSS:使用不同数量的匹配变量进行重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42218725/

相关文章:

macros - 如何使用语法检查变量的度量(名义/序数/规模)?

spss - 基于列表或值集重新编码变量?

r - SPSS,语法 : How to categorize each 260 cases as a separate level in a single variable

excel - 使用 Excel VBA 将 Excel 工作表数据导出为 SPSS 语法格式 (.sps)

SPSS 语法 : how can I generate a var_list of all variables from the active dataset?

matlab - 通过多次合并相同的行向量来构建矩阵

python - Pandas:重复数据帧n次

R 生成类似 111222333444555666777.....505050 的序列

c++ - 创建高效函数

java - 执行一次后停止 Swing 计时器