219:输出listing的一些规范或者注意事项
今天用具体程序代码讲一下写listing需要注意的地方,尤其是安全性相关的清单。
输出listing,subject level的数据一般不用空行;不良事件、既往合并用药那些,一般不同受试者之间空行,然后一般按照治疗组别,受试者编号、开始日期、结束日期排序;安全性相关的listing一般不同检测项之间空行,然后按照治疗组别,受试者编号、检测项、开始日期、结束日期(有时间点记得加上时间点)排序。
1:有人可能会好奇按照检测项排序,你怎么知道哪个检测项在前面,哪个在后面呢?其实我们一开始创建--TEST,到对应的PARAM,一般就是按照CRF上的顺序列出检测项,然后从低到高赋值对应的paramn排序就好了。
(我发现很多读者可能基础性的知识都不懂,我还以为大家都懂了,所以还是能详细讲一下的就讲一下)
2:很多统计师在创建shell的时候,考虑不详细或者偷懒,可能就简单地写上按照治疗组别和受试者排序,但是我们SP自己要有那个意识,有日期的,再加上开始结束日期排序,要不然review的时候,日期更大的怎么排在日期更小的前面了,明显不合理。
3:上面讲的空行并不是绝对的,输出listing最主要的一个原则就是美观!
比如下面这张图,header歪歪扭扭,不够匀称能宽度少一点的(即让header换行,因为它的值只有“是否”,所以可以窄一点,然后分多行)
1e484d0c988cc96e99ce0a879fbfece.jpg
经过修改后,这样看是不是美观多了?希望大家写listing的时候注意这些细节,这也是花时间比较多的地方。
image.png接下来讲讲写listing的时候很容易出现的一个问题,就是在数据集里面排序的时候都是好好的,也是正确的,但是为什么输出到report的时候顺序就移位了,这是一个原因
136:proc report(六讲)--ASIS=ON/ORDER=DATA
为了避免这种情况,大家以后在写listing的时候,按照我下面的示例程序写,应该就能避免出现这个问题:
data final;
length col1-col10 $200.;
set adeg;
col1=strip(trt01a);
col2=strip(subjid);
col3=strip(age);
col4=strip(trtseqa);
col5=strip(param);
col6 =strip(visit);
col7=strip(atpt);
col9=strip(egscat);
col10=strip(egorresl);
blank="";
keep col: trt01an trtseqan subjid paramn visitnum atptn blank;
run;
我这边的建议是你在输出final数据集的时候,不要只保留col:这些列,最好把这些列对应的原始变量的数值型也保留下来,用于后面我们report输出排序,好处之一是清晰明了,不像用col你可能还得拉上去看是哪个变量。
然后在输出report的时候,像下面这样写
proc report data=final nowindows missing split = "#" ;
column page trt01an col1 subjid trtseqan col2-col4 paramn col5 visitnum col6 blank atptn col7 col8-col10;
define page /order order=internal noprint;
define subjid /order order=internal noprint;
define trt01an /order order=internal noprint;
define trtseqan /order order=internal noprint;
define paramn /order order=internal noprint;
define visitnum /order order=internal noprint;
define atptn /order order=internal noprint;
为了避免上面讲到的排序混乱的问题,注意我在column是怎么放这些变量的!比如col5是检测项目,那么就把paramn放在这一列前面,第六列是访视,那就把访视编号放在这一列前面,这就是关键的一个地方。
column page trt01an subjid trtseqan visitnum col1 col2-col4 paramn col5 col6
切记不要把这些原始变量一股脑放在一开始的地方,输出的结果绝对让你意想不到。这样做相当于一开始就把按照这些原始变量的值分类了,要么排序混乱,要么一页就输出几行观测!
The end,这几天一到晚上就心情抑郁低落,而且还睡不着