运行 SPSS 总计 / Python
Running totals in SPSS / Python
我正在尝试在 SPSS 中创建 运行 总数。而且,我需要不止一个。我的 SPSS 数据集如下所示(运行 总数除外):
- [x] | [y] | [运行 总计]
- 10 | 1 | 10 (= 0 + 10)
- 20 | 1 | 30 (= 10 + 20)
- 30 | 2 | 30 (= 0 + 30)
- 40 | 2 | 70 (= 30 + 40)
- 50 | 3 | 50 ...
对于 y(组 ID)的每个值,我想创建一个 运行 总数。我能够在整个数据集上创建 运行 总数,但这不是我需要的。我需要这样的东西:
对于 y = 1 到 500
计算 x = x + lag(x)
遗憾的是,SPSS 无法在循环中执行 x = x + lag(x)。我需要在 SPSS 语法(或 Python)中完成此操作,否则我会在 Excel 中手动完成,即使它有很多数据。我很沮丧,非常感谢任何帮助!
您可以在您的 id 变量上使用 SPLIT FILE
,然后使用 CREATE
计算 ID 内的累计和。
SPLIT FILE BY ID.
CREATE /RunTotal=CSUM(X).
SPLIT FILE OFF.
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.
我正在尝试在 SPSS 中创建 运行 总数。而且,我需要不止一个。我的 SPSS 数据集如下所示(运行 总数除外):
- [x] | [y] | [运行 总计]
- 10 | 1 | 10 (= 0 + 10)
- 20 | 1 | 30 (= 10 + 20)
- 30 | 2 | 30 (= 0 + 30)
- 40 | 2 | 70 (= 30 + 40)
- 50 | 3 | 50 ...
对于 y(组 ID)的每个值,我想创建一个 运行 总数。我能够在整个数据集上创建 运行 总数,但这不是我需要的。我需要这样的东西:
对于 y = 1 到 500 计算 x = x + lag(x)
遗憾的是,SPSS 无法在循环中执行 x = x + lag(x)。我需要在 SPSS 语法(或 Python)中完成此操作,否则我会在 Excel 中手动完成,即使它有很多数据。我很沮丧,非常感谢任何帮助!
您可以在您的 id 变量上使用 SPLIT FILE
,然后使用 CREATE
计算 ID 内的累计和。
SPLIT FILE BY ID.
CREATE /RunTotal=CSUM(X).
SPLIT FILE OFF.
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.