结合SAS和R绘制临床试验figure

SAS和R的graph template language(GTL)

SAS绘制figure,我们主要使用proc templateproc sgrender来实现。proc template用来定义figure的模板并保存进行重复使用,proc sgrender用来渲染figure,二者需要搭配使用。proc templateproc sgrender的语法以及options是比较多且繁琐的,在使用中需要不断地进行熟悉。

proc template;
  define statgraph <template-name>;
  begingraph / <options>;
    <GTL statements>;
  endgraph;
  end;
run;
proc sgrender data = <data> template = <template-name>;
run;

但是,SAS可以实现高度定制化的图形,比如下面的图形,我们可以通过SAS的GTL来实现。

SAS

上面图形的代码我已经放到星球里。但是,对于不熟悉SAS的小伙伴来说,可能会比较吃力。

这时候,使用R来绘制就比较简单了。在R中,我们主要使用ggplot2patchwork来实现。ggplot2是R中最常用的绘图包,patchwork则可以将多个figure进行拼接。ggplot主要根据图层来绘制图形。图层可以包括data、aesthetics、geom、stat、position、facet、theme等。而pacthwork则可以利用+|\来实现grid.arragegrid.grob的功能。R中利用ggplot2的语法相对于SAS来说,更加简单易懂。下面是R中绘制的图形。

R

可以看到,上面不仅拼接了图形,还增加了图形的注释(Fig A),此外,其中增加了一个表格。代码也已经放进星球了,欢迎大家查阅。

在实际的作图中,考虑到SAS和R各自的优势,我们可以结合着使用,来定制figure。

Did you find this page helpful? Consider sharing it 🙌

Zhen Lu
Zhen Lu
Biostatistician, Clinical Epidemiologist

Walk with the master

Related