临床试验会针对Efficacy Endpoints举行Efficacy分析,这些分析是针对特定的Efficacy Paramters。纳入Efficacy分析的人群,通常是基线以及基线后至少一次访视值不为空 (With non-missing values at baseline and at least on post-baseine visit)。
在SAP中,分析人群会有明白界说。在ADaM中,会创建特定Flag变量来标识每一个分析人群。比方,Full Analysis Set对应加入随机化或加入入组的人群,对于符合条件的受试者,变量FASFL赋值为“Y”。
1. Efficacy Analysis Flag阐明
获取Efficacy Analysis Flag的团体思路是,在per usubjid per paramcd的维度下,筛选出基线后访视AVAL和BASE值都不为空的记载,将对应的Flag赋值为“Y”,然后再将Flag拼接回原数据集中。
Efficacy分析只会针对特定的Paramter,SAP中会规定好,一样平常也都有详细条件举行筛选,比方parcat1 = "XXXXX",paramcd in ("XX1" "XX2" "XX3"),举例代码中就不再演示。
Data 步实现的思路是,筛选出符合条件的USUBJID-PARAMCD组合,为其赋上对应的Flag,然后去重,末了拼接回数据集。
演示代码如下:
**effpfl;data effpfl; set adxx; where avisitn > 0 and chg ne.; effpfl = "Y"; keep usubjid paramcd effpfl; proc sort nodupkey; by usubjid paramcd;run;**epm12fl;data epm12fl; set adxx; where 0<avisitn<=12 and chg ne.; epm12fl= "Y"; keep usubjid paramcd epm12fl; proc sort nodupkey; by usubjid paramcd;run;**epm24fl;data epm24fl; set adxx; where 0<avisitn<=24 and chg ne.; epm12fl= "Y"; keep usubjid paramcd epm24fl; proc sort nodupkey; by usubjid paramcd;run;**epm36fl;data epm24fl; set adxx; where 0<avisitn<=36 and chg ne.; epm36fl= "Y"; keep usubjid paramcd epm36fl; proc sort nodupkey; by usubjid paramcd;run;**Combine flags above;data adxx1; merge adxx effpfl epm12fl epm24fl epm36fl; by usubjid paramcd;run;整个过程,看起来长了些,但是条理清晰,容易明白。
3. 方法2:Proc SQL
获取Efficacy Analysis Flag的团体思路肯定不会变,但是基于自身语法的特性,SQL实现起来比力简便。 主体步伐依旧是左拼接,只不外各个Flag的天生聚合在子查询中,通过group by以及聚合函数max实现了去重的功能。
proc sql noprint; create table adxx2 as select a.*, b.effpfl, b.epm12fl, b.epm24fl, b.epm36fl from adxx as a left join ( select usubjid, paramcd, "Y" as effpfl, max(case when avisitn<=3012 then "Y" else " " end) as epm12fl, max(case when avisitn<=3024 then "Y" else " " end) as epm24fl, max(case when avisitn<=3036 then "Y" else " " end) as epm36fl from adxx where avisitn > 0 and chg ne. group by usubjid, paramcd ) as b on a.usubjid = b. usubjid and a.paramcd = b.paramcd group by a.usubjid, a.paramcd, a.avisitn ;quit;若只天生EFFPFL变量,子查询中需添加distinct选项去重。由于对于保存下来的EFFPFL记载,值都为“Y”,聚合函数会直接保存 1条记载,没有聚合函数,就必要添加去重选项。
SQL步伐,浓缩简便,易读性上差了点。
这里注意一个小点,这个点不常碰到,SQL拼接天生新变量时,新变量名不能在原数据中存在,假如存在会造成赋值失败。
总结