You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SPSS按ID分组计算首次达标后测试均分及标记达标用户操作咨询

以下是SPSS环境下的完整实现步骤,所有语法可直接复制到语法窗口运行,字段名可根据你的实际数据集替换:

前置准备

首先确认你的数据集包含3个核心字段,且已提前筛选掉无任何≥40分记录的用户:

  • 用户唯一标识字段:ID
  • 测试序号字段:test_no(取值1-10,对应10次测试的先后顺序)
  • 测试得分字段:score(单次测试的得分数值)

首先执行排序,确保每个ID的测试记录按时间先后排列:

SORT CASES BY ID test_no.
EXECUTE.

步骤1:标记达标用户(需求2实现)

  1. 生成单条测试记录是否达标标记
COMPUTE pass = (score >= 40).
EXECUTE.
  1. 按ID聚合,一次性计算每个ID的达标总次数、首次达标的测试序号
AGGREGATE
  /OUTFILE=* MODE=ADDVARIABLES
  /BREAK=ID
  /pass_total = SUM(pass)
  /first_pass_test = MIN(IF(pass=1, test_no)).
  1. 生成最终达标用户标记
* 字段值1表示达标用户(至少2次≥40分),0表示非达标用户.
COMPUTE 达标用户 = (pass_total >= 2).
EXECUTE.

步骤2:计算首次达标后所有测试的均分(需求1实现)

  1. 标记当前测试记录是否属于首次达标后的统计范围
COMPUTE include_in_avg = (test_no >= first_pass_test).
EXECUTE.
  1. 按ID聚合,计算符合条件的记录的得分均值
AGGREGATE
  /OUTFILE=* MODE=ADDVARIABLES
  /BREAK=ID
  /首次达标后均分 = MEAN(IF(include_in_avg=1, score)).
EXECUTE.

可选操作:导出单用户维度的统计结果

如果需要输出每行对应一个ID的汇总表,可执行以下语法去重:

SORT CASES BY ID.
MATCH FILES FILE=* /BY ID /FIRST=first_flag.
SELECT IF first_flag=1.
* 可根据需要删除test_no、score、pass等单测试维度的冗余字段.
EXECUTE.

内容的提问来源于stack exchange,提问作者Scrub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 00:12:03