结合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。