SAS程序员的自我修养(General Rules)

168:listing(清单)输出的一些“潜规则”

2022-11-25  本文已影响0人  SASPRO的打工人生活

今天来讲讲输出listing需要注意的一些事项,这些事项都是我们在做项目的时候需要遵守或者知悉的原则。

关于具体怎么输出TFL,包括具体的格式,数据怎么放,放多少,目前应该还没有一份专门的文件指导说明(应该吧?),ICH E3-临床研究报告的结构和内容  我感觉也没有很详细的说明到底怎么输出listing。

但是里面有列出一个实验室测量值列表,大致给出了一个模板

这也确实是我们输出listing的时候大致的格式,下面还有一个更具体的来自一篇论文的模板,可以说实际工作中输出的listing差不多就是按照这个样式了(title和header可能每个公司会有差异)

from《Making Customized ICH Listings with ODS RTF》Huei-Ling Chen, William Wei, Merck & Co., Inc.

所以我就按照上面这张图片,来给大家讲讲大家在输出listing的时候需要注意什么,同样的,我也觉得这是属于《SAS程序员的自我修养》之一。

1:在输出用于listing的数据集的时候,并不需要提前输出图片里的那个样子(也就是受试者编号只输出一次),一般我们不做处理,该怎么输出就怎么输出,在proc report的时候我们order一下就好了。

order的意思就是上面红框里的写法,这样就能产生上面的效果。

2:那什么时候需要order呢?什么时候又不需要呢?拿上面的LB listing来说,对于重复输出的subjid,category,test,我们需要order,其他的像访视,检查日期,研究日,检查结果我们直接display就好了。

同时需要注意的是,你用order选项的时候,是跟column排列的顺序有关的,比如你把Test放到VISIT后面的时候,也就是

column subjid categoryTest Visit 和

column subjid category Visit Test

造成的效果是不一样的,后者的Test并不会只输出一次,而是Visit输出一次,Test就输出一次,为什么,就是因为Visit排在Test前面,相当于这个受试者这个Test都是独一无二的,所以order不起作用。

我记得第一次写listing的时候,不知道这个东西,没有注意column的顺序,一直在想为什么每条访视都输出一次检验呢。所以这是大家需要注意的。

3:输出report的时候我们一般还会要求空行,但是如subject-level的数据我们就没必要空行了。但是在既往病史,不良事件,既往用药这些listing,我们一般会按照组别加上一条空行,实验室检查的我们一般在不同检查项之间加上一条空行,就像下面这样(图中没有空行,所以可能跟个人习惯和公司要求可能有关,也没有文件要求你必须空行吧?所以我觉得应该是为了美观吧)

4:就是输出数据集的排序,一般人口统计学的信息,我们按照受试者编号或者入组号排序就够了,然后既往病史,不良事件,既往用药这些listing,我们还得加上开始日期和结束日期。有的统计师可能不会加上这些编程备注,但是我们在写程序的时候,这个依然是需要注意的一个点

然后实验室检查那些,我们一般按照subjid,parcat1,paramn,xxdtc,visitnum(visitnum和xxdtc可能要具体项目具体调换顺序),paramn反应的顺序一般就是CRF上列的检查项的顺序,所以我们一般在做SDTM,ADaM的时候,就按照CRF上列的检查项的顺序写SPEC。

还需要注意的一点是,虽然你在数据集里面已经按照开始结束日期排序了,但是输出report的时候发现明明日期更晚的,却排在了日期更早的前面,这就是因为order=data和order=internal的区别(以前文章写过)

所以大家在输出report之后,请打开report看一看,求你了!不要数据集Q上了就完事,不管是main和QC都要检查一下report。:

4:接着上一条,如果大家数据QC完成了,很重要的一个修养就是打开report检查一下输出是否正确,1)除了上面的日期问题,2)还要检查一下header是否跟shell一致(这个目前在数据集是Q不出来的),3)就是检查一下是否有分页,因为可能因为一页放太多了或者某一列很多文本描述导致断页了,所以这也是需要认真检查的一个点!4)然后一页能多放就多放(在不断页的前提下),不要为了不断页数据就放半页,这样文件会很大,尤其是LB的,可能打开word就花去了大半天。

table的话也是上面的问题,然后还得检查header上的N是否正确,第一列的header(若有)是否加上或者是否写正确,比如说SOC/PT等

总结一下:虽然listing写起来很简单,变量直接从ADaM里面拿,最多就是拼接一下,但是也可以很烦,调整格式,检查输出是一份费心费精力的事情。但不管怎么样,你既然写这张listing,那就请做好,务必写完后打开report检查一下!!!!!!!小弟在此谢过了!大哥!

上一篇下一篇

猜你喜欢

热点阅读