SDTM中BLFL的处理

直接看一个项目中EG domain中 EGBLFL 的编程逻辑:

Latest non missing measurement (EGDTC if EGSTRESC is not missing) on or before first dose date(DM.RFSTDTC) then set to 'Y', otherwise set to missing

意思是,将EGDTC离RFSTDTC最近的非缺失观测,设为基线。这里有两个限定条件:

1). 2) not missing(EGSTRESC) 。

整个编程逻辑很清楚,先将DM中的RFSTDTC拼接到EG的观测中,在满足以上两个限定条件后,将时间最晚的记录设为基线。我们来看一下具体的编程代码:
SDTM中BLFL的处理_第1张图片
EGBLFL

标黄的语句,定义了一个FL的变量,用来表明两个限定条件。这里代码有待改进,只单单表达了 .

if not missing(egdtc) and egdtcn <= rfstdtcn and  not missing(egstresc) then fl = 1;

EGBLFL定义的是每个受试者每一个EGTEST的基线,即每一个受试者、每一类EGTEST都有一个基线。数据集观测按照 USUBJID、EGTESTCD、FL、EGDTC、VISITNUM 排序。前四个排序变量很好理解,每一个受试者的一类EGTESTCD中,满足条件(FL=1)的记录会排在后面,在这些记录中 EGDTC 也是升序排列,最迟时间的记录也会排在最后。但为什么要再加 VISITNUM 这个排序变量呢?因为这个项目原始数据有一些问题,很多观测的 EGDTC 值相同,即时间相同。这样按时间变量排序就很可能无法选出最晚的观测了,于是用 VISITNUM 来担任时间变量的角色。

整个BLFL的处理,简单讲就只有两部分:

1)确定操作观测的范围(FL=1/满足两个限定条件);
2)在符合条件的观测中找到时间最迟的记录,赋值BLFL='Y'。

在理解BLFL的含义及生成逻辑之后,SAS代码的编写就水到渠成了。

你可能感兴趣的:(SDTM中BLFL的处理)