欢迎光临散文网 会员登陆 & 注册

如何按照TFL模板给出的顺序出表或者QC

2022-01-25 14:27 作者:CDISC与SAS  | 我要投稿
上篇文章介绍了当分类变量不全时,如何去填补。XTH,公众号:CDISC与SAS制作汇总表时不用dummy的方法,解决分类变量数据缺失-- proc means/ freq

这篇文章会介绍,当填补完,如何按照TFL模板给出的顺序出表或者QC。


方法一:proc format(生成format)和proc means

    proc format;value  ...(notsorted)…=…;run;notsorted:保留你当前定义的顺序。
    proc means data=... noprint  nway  completetypes;class … / preloadfmt  order=data;var ...;output n=...  out= ... ;format  ... ... ;run;order=data:当使用了PRELOADFMT,order=data会按照PROC FORMAT定义的顺序排列。




    方法二:proc format(提取format数据集)和proc freq

      proc format cnlout=dataset;select @formatrun;使用@可以自动检索你想要的format,cnlout则输出成dataset。
      sql join步骤dataset当作dummy和分析数据集用proc sql join,merge不推荐因为要考虑by后变量的length和name。
      proc freq data= dataset noprint;tables variable * variable / sparse out= dataset;run;


      缺点:

      方法一:需要定义format顺序。

      方法二:无法定义format顺序,需要制作dummy。


      优点:因为在项目中提前做好的CT文档会生成我们需要的format,所以两种方法均无需定义format。(注意区分定义format和定义format顺序两者的区别)解决方法:

      当定义format顺序时,可以复制TFL模板内容进excel(如A列),再利用公式进行填补修饰(如B列)。操作起来非常方便,省时,准确度高。如下图(也可以等于数值型的format,再生成排序变量)

      另外,如果QC的时候,Source数据集可以自由排序再proc compare的话,则无需定义format顺序,可直接运用方法一的proc means,只不过需要仔细比对输出的output和模板的排列顺序。

      而我司GDE建议不要在程序中单独使用proc format,并且要求QC数据集和模板顺序一致。尽管如此,也可以灵活运用EXCEL进行dummy的生成,再运用方法二。

      总结,方法一和二会比传统生成dummy处理方法要快捷,其中EXCEL的灵活运用非常关键。


      如何按照TFL模板给出的顺序出表或者QC的评论 (共 条)

      分享到微博请遵守国家法律