结合SAS和R绘制临床试验figure
SAS和R的graph template language(GTL)
SAS绘制figure,我们主要使用proc template和proc sgrender来实现。proc template用来定义figure的模板并保存进行重复使用,proc sgrender用来渲染figure,二者需要搭配使用。proc template和proc 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的小伙伴来说,可能会比较吃力。
这时候,使用R来绘制就比较简单了。在R中,我们主要使用ggplot2和patchwork来实现。ggplot2是R中最常用的绘图包,patchwork则可以将多个figure进行拼接。ggplot主要根据图层来绘制图形。图层可以包括data、aesthetics、geom、stat、position、facet、theme等。而pacthwork则可以利用+、|、\来实现grid.arrage和grid.grob的功能。R中利用ggplot2的语法相对于SAS来说,更加简单易懂。下面是R中绘制的图形。

可以看到,上面不仅拼接了图形,还增加了图形的注释(Fig A),此外,其中增加了一个表格。代码也已经放进星球了,欢迎大家查阅。
在实际的作图中,考虑到SAS和R各自的优势,我们可以结合着使用,来定制figure。