我每组有两组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确实让我很头疼..
我希望得到你的帮助,并提前感谢你。 干杯,大卫。
答案 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).