如何计算行的平均值,直到变量发生变化并重复?

How to compute the mean over rows till a variable changes and repeat?

给定一个非常大的 table 以下格式(例如片段):

Subject, Condition, VPH, Task, Round, Item, Decision, Self, Other, RT 1, 1, 1, SVO, 0, 0, 4, 2.5, 2.0, 8.598 1, 1, 1, SVO, 1, 5, 3, 4.1, 3.4, 7.785 1, 1, 1, SVO, 2, 4, 3, 3.2, 3.4, 15.713 2, 2, 1, SVO, 0, 0, 4, 2.5, 2.0, 15.439 2, 2, 1, SVO, 1, 2, 7, 4.9, 2.3, 30.777 2, 2, 1, SVO, 2, 3, 8, 4.3, 4.3, 13.549 3, 3, 1, SVO, 0, 0, 5, 2.8, 1.5, 9.066 ...(依此类推)

需要:计算每个主题的自己和他人所有回合的平均值。

到目前为止我有: 我使用 bash sort 对大约 100mb .txt 文件进行了排序,因此主题和相关轮次依次出现(如示例所示)。之后我将 .txt 文件导入 SPSS24。现在我不知道要编写一个函数来计算每个主题在三轮中变量 self 和 others 的平均值。例如:(一些伪代码)

for n = 1 to last_subject do: get row self where lines have line_subject as n compute mean over these content write result as new variable self_mean as new variable after variabel RT at line n increase n by one

由于我是 SPSS 的新手,我非常感谢详细的帮助。我也对专门针对行计算的参考文献感到满意(我在列中发现了很多东西)。

非常感谢!

编辑:示例输出 计算后 table 应该是这样的:

主题,Mean_Self,Mean_Others 1, 3.27, 2.9 2, ..., ... 3,<br> ...(等等) 所以现在我们从上面的例子中计算 Mean_Self 像这样: mean(2.5 + 4.1 + 3.2) 其中: 2.5 从 Variable Self 的第 1 行开始使用 4.1 从 Variable Self 的第 2 行开始使用 3.2 从变量 Self

的第 3 行开始使用

2.5 not 从 Variable Self 的第 4 行开始使用,因为 Variable Subject 发生了变化,我们想用新的 Subject(这里是 2)重复这个过程,直到它再次发生变化.结果应该会像上面那样创建一个 table。其他变量的相同过程。

如果我没理解错的话,您需要的是 aggregate 命令。 aggregate 可以使用您的聚合数据创建一个新的 dataset/file,或者将聚合数据添加到您的活动数据集,如上文所述:

AGGREGATE
  /OUTFILE=* MODE=ADDVARIABLES
  /BREAK=Subject
  /Self_mean=MEAN(Self) 
  /Other_mean=MEAN(Other).

为了在新的、单独的表中获取新变量,请查找其他 AGGREGATE 选项,例如/OUTFILE=*(删除MODE=ADDVARIABLES)将导致新的聚合数据替换window中的原始文件,而/OUTFILE="path/filename"会将聚合数据保存到文件中。