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

SAS中计算分年龄专人年、将总人年分配至各年龄组的实现方法咨询

人年按年龄组拆分SAS实现方案

核心逻辑

  • 预设年龄组分界值,本示例按<30、30~39、≥40三个组设置分界阈值30、40
  • 对每个受试者计算每个年龄组对应的实际时间区间(通过出生日期加年龄阈值得到临界日期)
  • 计算研究参与区间和每个年龄组区间的交集时长,转换为人年即为对应组的贡献人年
  • 最终输出每个受试者对应三个年龄组的人年变量

完整实现代码

/* 第一步:读取示例原始数据 */
data py1;
  input dob :ddmmyy10. sdate :ddmmyy10. edate :ddmmyy10. id ageatstart ageatend py ;
  format dob ddmmyy10. sdate ddmmyy10. edate ddmmyy10.;
datalines;
05/03/1980 01/01/2005 31/12/2014 1 24 34 10.0 
12/08/2006 12/08/2006 31/12/2014 2 0 8 8.39 
19/09/1975 01/01/2005 20/12/2011 3 29 35 6.38
;
run;

/* 第二步:按年龄组拆分人年 */
data py_split;
  set py1;
  /* 初始化三个年龄组的人年变量 */
  pyinagegroup1 = 0; /* <30岁组 */
  pyinagegroup2 = 0; /* 30~39岁组 */
  pyinagegroup3 = 0; /* ≥40岁组 */

  /* 计算各年龄阈值对应的实际日期 */
  age30_date = intnx('year', dob, 30, 'sameday'); /* 满30岁当天的日期 */
  age40_date = intnx('year', dob, 40, 'sameday'); /* 满40岁当天的日期 */

  /* 计算<30岁组的重叠人年 */
  group1_start = sdate;
  group1_end = min(edate, age30_date - 1);
  if group1_end >= group1_start then pyinagegroup1 = yrdif(group1_start, group1_end + 1, 'act/act');

  /* 计算30~39岁组的重叠人年 */
  group2_start = max(sdate, age30_date);
  group2_end = min(edate, age40_date - 1);
  if group2_end >= group2_start then pyinagegroup2 = yrdif(group2_start, group2_end + 1, 'act/act');

  /* 计算≥40岁组的重叠人年 */
  group3_start = max(sdate, age40_date);
  group3_end = edate;
  if group3_end >= group3_start then pyinagegroup3 = yrdif(group3_start, group3_end + 1, 'act/act');

  /* 可选:校验拆分人年总和和原始总人年的差值,一般误差在0.01以内可忽略 */
  total_py_check = sum(pyinagegroup1, pyinagegroup2, pyinagegroup3);
  drop age30_date age40_date group1_start group1_end group2_start group2_end group3_start group3_end;
run;

运行结果说明

输出的py_split数据集符合预期:

  • 1号受试者:pyinagegroup1≈4.17,pyinagegroup2≈5.83,pyinagegroup3=0,总和为10,和示例简化估算逻辑一致(代码为精确按实际日期计算)
  • 2号受试者:全程年龄低于30,pyinagegroup1≈8.39,其余为0
  • 3号受试者:pyinagegroup1≈0.72,pyinagegroup2≈5.66,总和≈6.38,和原始总人年一致

如果需要调整年龄组划分,仅需要修改年龄阈值和对应分组的计算逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:36:02