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). <EGDTC<=RFSTDTC ;
2) not missing(EGSTRESC) 。

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

标黄的语句,定义了一个FL的变量,用来表明两个限定条件。这里代码有待改进,只单单表达了 . <EGDTC <= RFSTDTC 这个条件,另外一个条件在 EGBLFL 赋值时补充了,相同作用的代码没有集中在一起,会显得杂乱、不简洁。可以这样修改,一次性满足两个限定条件:

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代码的编写就水到渠成了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。