我正在尝试在大型数据集上连续计算两个变量的平均值。我有64个案例和200多个变量。基本上,我需要一遍又一遍地计算两个变量的平均值。例如,我有v1,v2,v3,v4,v5等,直到v200作为我的变量。我现在需要计算v1和v2,v3和v4,v5和v6的平均值,依此类推。 有没有办法做到这一点,而不必写超过100行代码?我想我需要使用一个循环,但我不太确定如何实现它。
对此问题的任何想法将不胜感激!
答案 0 :(得分:1)
以下是使用LOOP
的示例,其中数据格式为宽格式。另一种方法可能是使用VARSTOCASES
将数据重新整形为长格式,然后使用LAG
或使用CREATE
运行方式。
*Making fake data.
MATRIX.
SAVE {GRADE(UNIFORM(5,200))} /OUTFILE = * /VARIABLES = V1 TO V200.
END MATRIX.
*Creating new vector to place the results in.
VECTOR VM(100).
VECTOR V = V1 TO V200.
COMPUTE #t = 0.
LOOP #i = 2 TO 200 BY 2.
COMPUTE #t = #t + 1.
COMPUTE VM(#t) = (V(#i-1) + V(#i))/2.
END LOOP.
EXECUTE.