SPSS:如何将两个变量列表相乘

时间:2016-06-16 10:30:23

标签: list loops spss

我每组有两组8个变量。我想将每个列表的第一个(第二个,第三个等)元素相乘并总结产品。到目前为止,我的尝试是这样的:

DO REPEAT
  set1 = var1 to var8.
  set2 = varA to VarH.
  compute sum_of_products = SUM(set1 * set2).
END REPEAT.
EXECUTE.

我得到的错误是(大致翻译自德语):

  

第38行中的错误代码4285.String:set2

     

变量名称错误:名称长度超过64个字符,或者前一个命令未定义。

     

此命令的执行已停止。

我认为问题是,我的DO REPEAT没有正确地包装命令,但我无法使用纪录片以及谷歌搜索来管理正确的解决方案。这些DO REPEATS和LOOPS确实让我很头疼..

我希望得到你的帮助,并提前感谢你。 干杯,大卫。

2 个答案:

答案 0 :(得分:2)

请参阅DO REPEAT命令的正确语法:

compute sum_of_products=0.
DO REPEAT set1 = var1 to var8 /set2 = varA to VarH.
  compute sum_of_products = sum(sum_of_products , (set1 * set2)).
END REPEAT.
EXECUTE.

答案 1 :(得分:2)

你非常接近。下面是带有解决方案的模拟示例数据集:

* Generate mock data*.
INPUT PROGRAM.
NUMERIC ID S1_1 TO S1_8 S2_1 TO S2_8 (F3.1). 
LOOP ID=1 TO 10.
  DO REPEAT S1=S1_1 TO S1_8 /S2=S2_1 TO S2_8.
    COMPUTE S1=RND(RV.F(3,10)).
    COMPUTE S2=RND(RV.F(3,10)).
  END REPEAT.
END CASE.
END LOOP.
END FILE.
END INPUT PROGRAM.


DO REPEAT S1=S1_1 TO S1_8 /S2=S2_1 TO S2_8 /S=#S_1 TO #S_8.
    COMPUTE S=(S1*S2).
END REPEAT.
COMPUTE PS=SUM(#S_1 TO #S_8).