ggrcs包是我写的第一个R包,所有权和解释权归我本人。用于绘制直方图+限制立方样条+双坐标轴图的图形。

ggrcs包可以支持cox回归和logistic回归。为什么是叫ggrcs,因为依托了ggplot包绘图函数和需要RCS包支持,我增加了许多ggplot的接口,便于后期修改. 目前还有需要完善的地方,只是上传到了Github上,稳定后再上传CRAN,安装方法有很多种,我只介绍几种:
install.packages("remotes")
library(remotes)
remotes::install_github("liuqiang070488/ggrcs")
install.packages("devtools")
devtools::install_github("liuqiang070488/ggrcs ")
3.可以到我的github主页https://github.com/liuqiang070488/ggrcs
直接下载压缩文件


把压缩文件下载到本地后,ggrcs_0.1.0.tar这个压缩文件就是

用R来本地安装


4.公众号回复:ggrcs 安装方法同3一样。
成功安装后以后包就出现在包的列表

我们来看一下包的介绍
ggrcs(
data,
fit,
x,
histlimit = NULL,
histbinwidth = NULL,
histcol = NULL,
linetype = NULL,
linesize = NULL,
ribalpha = NULL,
ribcol = NULL,
xlab = NULL,
ylab = NULL,
subtitle = NULL,
caption = NULL,
leftaxislimit = NULL,
lift = TRUE,
scale_y_continuous = NULL,
title = NULL,
...
)
包的变量比较多,但是你只要输入3个data, fit, x, data就是你的数据,只支持数据框格式,不是数据框就会报错,最好数据不要有太多缺失值。Fit就是你的模型,目前只支持cox回归和logistic回归,因为依托于RMS包的rcs函数支持,所以模型的格式是lrm和cph,等下我会演示怎么操作。X就是你想要观察的目标变量,必须是连续变量。其他变量也一一介绍一下,histlimit你的直方图映射范围,就是Y轴的范围,默认是预测值的可信区间的最小值和最大值。Histbinwidth直方图宽度,默认是0.8,histcol直方图颜色,默认是绿色,linetype:RCS的线型,linesize:RCS的线条大小,忘记加入调整线颜色的函数了,后期改进。Ribalpha:可信区间透明度,ribcol可信区间颜色,默认是红色,xlab,ylabX轴和Y轴的标签,title标题。
下面我们通过实例来演示一下,先演示cox回归
ggrcs包内置了既往我们文章中的吸烟数据3的数据,我就不解释数据内容了,需要的请到相关文章查找,先导入R包和数据
library(ggrcs)
library(rms)
library(ggplot2)
library(scales)
dt<-smoke
整理数据
dd<-datadist(dt)
options(datadist='dd')
拟合模型
fit <- cph(Surv(time,status==1) ~ rcs(age,4), x=TRUE, y=TRUE,data=dt)
绘图
ggrcs(data=dt,fit=fit,x="age")

还算方便把,前面都是绘制RCS的常规操作,绘图一行代码搞定,还可以进行细节修改。改变柱子颜色
ggrcs(data=dt,fit=fit,x="age",histcol="blue")

改变柱子宽度,默认是0.8
ggrcs(data=dt,fit=fit,x="age",histcol="blue",histbinwidth=1)

改变可信区间颜色
ggrcs(data=dt,fit=fit,x="age",histcol="blue",histbinwidth=1,ribcol="green")

改变可信区间透明度,默认0.3
ggrcs(data=dt,fit=fit,x="age",histcol="blue",histbinwidth=1,ribcol="green",ribalpha=0.5)

更改X轴和Y轴内容
ggrcs(data=dt,fit=fit,x="age",histcol="blue",
histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",ylab="吸烟概率")

更改标题
ggrcs(data=dt,fit=fit,x="age",histcol="blue",
histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",ylab="吸烟概率",title ="年龄和吸烟概率关系")

更改投射范围就是Y轴的范围,默认是预测值的可信区间的最小值和最大值
ggrcs(data=dt,fit=fit,x="age",histcol="blue",
histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",ylab="吸烟概率",
title ="年龄和吸烟概率关系",histlimit=c(0,10))

更改密度函数的投射范围,默认是取最大值和最小值
ggrcs(data=dt,fit=fit,x="age",histcol="blue",
histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",
ylab="吸烟概率",title ="年龄和吸烟概率关系",leftaxislimit=c(0,1))

假如不想要左轴,lift函数调整为F,默认是TRUE
ggrcs(data=dt,fit=fit,x="age",histcol="blue",
histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",ylab="吸烟概率",
title ="年龄和吸烟概率关系",lift=F)

下面介绍logistic回归模型的使用,使用既往文章《R语言绘制限制立方条图2(基于logistic回归和线性回归)》的例子,不要在意数据的内容,只是举个例子
导入数据
library(foreign)
be <- read.spss("E:/r/test/Breast cancer survival agec.sav",
use.value.labels=F, to.data.frame=T)
be <- na.omit(be)
转分类变量为因子
be$ln_yesno<-as.factor(be$ln_yesno)
整理数据
dd <- datadist(be) #为后续程序设定数据环境
options(datadist='dd') #为后续程序设定数据环境
拟合模型
fit <-lrm(status ~ rcs(age, 4)+ln_yesno,data=be)
绘图,也是一行代码搞定
ggrcs(data=be,fit=fit,x="age")

柱子很稀疏,不够美观,增加柱子宽度
ggrcs(data=be,fit=fit,x="age",histbinwidth=1)

更改柱子颜色
ggrcs(data=be,fit=fit,x="age",histbinwidth=1,histcol="blue")

其他操作都和cox回归一样,我就不一一演示了。
本人第一次写R包,肯定存在一定不足,如果有什么bug或者还需要有什么值得改进的地方或者需要增加什么功能,欢迎你来告诉我。ggrcs包目前还不能做双变量的RCS图,数据正在进行调试中,后期版本会推出。还有一个事我想问问大家,副标题绘图的时候需要吗?如下

subtitle = NULL,caption = NULL,这两个变量是对接副标题的,如果不需要的话在后期版本我就取消掉了。