proc report

219:输出listing的一些规范或者注意事项

2023-05-08  本文已影响0人  SASPRO的打工人生活

今天用具体程序代码讲一下写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,这几天一到晚上就心情抑郁低落,而且还睡不着

上一篇 下一篇

猜你喜欢

热点阅读