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

SPSS中基于accident变量按被试循环生成衍生变量的技术求助

SPSS实现被试内事故衍生变量的解决方案

核心思路

先定位每个被试第一次出现accident=1的时间点,再基于这个关键时点批量计算两个衍生变量,比loop/lag类语法更高效可靠,也更易排查问题。

步骤与语法

  1. 先确保数据按被试和时间排序
    这是所有组内逻辑计算的前提,必须执行:
SORT CASES BY ID time_point.
EXECUTE.
  1. 提取每个被试首次事故的时间点
    用AGGREGATE命令按ID分组,找出accident=1对应的最小时间点;无事故的被试将该临时变量设为9(大于最大时点8,避免触发后续逻辑):
AGGREGATE
  /OUTFILE=* MODE=ADDVARIABLES
  /BREAK=ID
  /first_accident_tp=MIN(time_point) BY accident (1).

IF MISSING(first_accident_tp) first_accident_tp = 9.
EXECUTE.
  1. 计算accident_intercept变量
    逻辑:首次事故时点及之后的所有时点设为1,之前为0:
COMPUTE accident_intercept = (time_point >= first_accident_tp).
EXECUTE.

SPSS中逻辑判断为真时返回1,为假返回0,刚好匹配需求

  1. 计算accident_slope变量
    逻辑:首次事故时点设为0,后续时点依次递增1;无事故的被试所有时点值为0:
COMPUTE accident_slope = 0.
IF time_point > first_accident_tp accident_slope = time_point - first_accident_tp.
EXECUTE.
  1. 清理临时变量(可选)
    去掉中间生成的first_accident_tp变量:
DELETE VARIABLES first_accident_tp.
EXECUTE.

示例验证

假设某被试的time_point为1-8,accident在tp3时=1:

  • accident_intercept:tp1-2为0,tp3-8为1
  • accident_slope:tp1-3为0,tp4=1,tp5=2...tp8=5

完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:15:25