SAS帮助写do循环

  • 本文关键字:循环 do 帮助 SAS sas
  • 更新时间 :
  • 英文 :


我试图写一个循环来标记两个标准。首先如果延迟(timeperiod)之间的差异- timeperiod>=4,然后比较两个时间段之间的代码是否相同或不同。我想在每个patientID上运行循环,直到满足其中一个条件。

TIA !

。数据

patientID, timeperiod, combined
wh7,1, diag1_diag2_diag3
wh7, 4, diag1_diag2_diag3_diag4
wh7, 10, diag1_diag2
wh7 15, diag4_diag10
wh4, 2, diag5_diag11_diag16
wh4, 4, diag5_diag11

使用BY组处理和自动FIRST.变量来检测组何时发生变化。另外,要明白SAS中的and表达式在求值过程中不会走捷径——所有的复合表达式都被完全求值。

你的DATA Step应该类似于

data want;
set have;
by patientID;
if not first.patientID and dif(time_period) >=4 and combined ne lag(combined) then 
flag = 1;
else 
flag = 0;
run;

注:DIF(x)相当于x - LAG(x)

相关内容

  • 没有找到相关文章

最新更新