如何将两个变量列表相乘

How to multiply two lists of variables

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

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

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

Error code 4285 in row 38. String: set2

Wrong variable name: either name is longer than 64 chars or he is not defined by a previous command.

Execution of this command has been stopped.

我认为问题是,我的 DO REPEAT 没有正确环绕命令,但我无法通过纪录片和 google 搜索来管理正确的解决方案。这些DO REPEATS和LOOPS真让我头疼。

查看 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.

你们很亲近。下面是带有解决方案的模拟示例数据集:

* 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).