我试图在SPSS中创建一个运行总计。此外,我需要不止一个。我的SPSS数据集看起来像这样(运行总计除外):
对于y(组ID)的每个值,我想创建一个运行总计。我能够在整个数据集上创建一个运行总计,但这不是我需要的。我需要这样的东西:
对于y = 1到500 计算x = x +滞后(x)
可悲的是,SPSS无法在循环中执行x = x + lag(x)。我需要在SPSS语法(或Python)中完成此操作,否则我会在Excel中手动完成,即使它有很多数据。我非常沮丧,真的很感激任何帮助!
答案 0 :(得分:2)
您可以在id变量上使用SPLIT FILE
,然后使用CREATE
计算ID中的累计总和。
SPLIT FILE BY ID.
CREATE /RunTotal=CSUM(X).
SPLIT FILE OFF.
答案 1 :(得分:2)
SPLIT FILE / CREATE
方法当然是最简单的编码和非常直观的,直到最近,David Marso在另一个论坛上提出了另一种方法,它在更大的数据集上运行得更快,这正是我实现这一目标的方法。
DO IF ($CASENUM= 1 OR Y<>LAG(Y)).
COMPUTE RunTot=X.
ELSE.
COMPUTE RunTot=SUM(X, LAG(RunTot)).
END IF.