• 首发: ggrcs包,一个用于绘制直方图+限制立方样条+双坐标轴图的R包


    ggrcs包是我写的第一个R包,所有权和解释权归我本人。用于绘制直方图+限制立方样条+双坐标轴图的图形。
    在这里插入图片描述
    ggrcs包可以支持cox回归和logistic回归。为什么是叫ggrcs,因为依托了ggplot包绘图函数和需要RCS包支持,我增加了许多ggplot的接口,便于后期修改. 目前还有需要完善的地方,只是上传到了Github上,稳定后再上传CRAN,安装方法有很多种,我只介绍几种:

    1. remotes包
    install.packages("remotes")
    library(remotes)
    remotes::install_github("liuqiang070488/ggrcs")
    
    • 1
    • 2
    • 3
    1. devtools包
    install.packages("devtools")
    devtools::install_github("liuqiang070488/ggrcs ")
    
    • 1
    • 2

    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,
      ...
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    包的变量比较多,但是你只要输入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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    整理数据

    dd<-datadist(dt)
    options(datadist='dd')
    
    • 1
    • 2

    拟合模型

    fit <- cph(Surv(time,status==1) ~ rcs(age,4), x=TRUE, y=TRUE,data=dt)
    
    • 1

    绘图

    ggrcs(data=dt,fit=fit,x="age")
    
    • 1

    在这里插入图片描述
    还算方便把,前面都是绘制RCS的常规操作,绘图一行代码搞定,还可以进行细节修改。改变柱子颜色

    ggrcs(data=dt,fit=fit,x="age",histcol="blue")
    
    • 1

    在这里插入图片描述
    改变柱子宽度,默认是0.8

    ggrcs(data=dt,fit=fit,x="age",histcol="blue",histbinwidth=1)
    
    • 1

    在这里插入图片描述
    改变可信区间颜色

    ggrcs(data=dt,fit=fit,x="age",histcol="blue",histbinwidth=1,ribcol="green")
    
    • 1

    在这里插入图片描述
    改变可信区间透明度,默认0.3

    ggrcs(data=dt,fit=fit,x="age",histcol="blue",histbinwidth=1,ribcol="green",ribalpha=0.5)
    
    • 1

    在这里插入图片描述
    更改X轴和Y轴内容

    ggrcs(data=dt,fit=fit,x="age",histcol="blue",
          histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",ylab="吸烟概率")
    
    • 1
    • 2

    在这里插入图片描述
    更改标题

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

    在这里插入图片描述
    更改投射范围就是Y轴的范围,默认是预测值的可信区间的最小值和最大值

    ggrcs(data=dt,fit=fit,x="age",histcol="blue",
          histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",ylab="吸烟概率",
          title ="年龄和吸烟概率关系",histlimit=c(0,10))
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    更改密度函数的投射范围,默认是取最大值和最小值

    ggrcs(data=dt,fit=fit,x="age",histcol="blue",
          histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",
          ylab="吸烟概率",title ="年龄和吸烟概率关系",leftaxislimit=c(0,1))
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    假如不想要左轴,lift函数调整为F,默认是TRUE

    ggrcs(data=dt,fit=fit,x="age",histcol="blue",
          histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",ylab="吸烟概率",
          title ="年龄和吸烟概率关系",lift=F)
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    下面介绍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)
    
    • 1
    • 2
    • 3
    • 4

    转分类变量为因子

    be$ln_yesno<-as.factor(be$ln_yesno)
    
    • 1

    整理数据

    dd <- datadist(be) #为后续程序设定数据环境
    options(datadist='dd') #为后续程序设定数据环境
    
    • 1
    • 2

    拟合模型

    fit <-lrm(status ~ rcs(age, 4)+ln_yesno,data=be)
    
    • 1

    绘图,也是一行代码搞定

    ggrcs(data=be,fit=fit,x="age")
    
    • 1

    在这里插入图片描述
    柱子很稀疏,不够美观,增加柱子宽度

    ggrcs(data=be,fit=fit,x="age",histbinwidth=1)
    
    • 1

    在这里插入图片描述
    更改柱子颜色

    ggrcs(data=be,fit=fit,x="age",histbinwidth=1,histcol="blue")
    
    • 1

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

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

  • 相关阅读:
    SpringBoot使用@Value获取不到yaml中配置的值
    Linux/Ubuntu/Arm设备中通过/proc/stat等文件计算Cpu使用率
    计算机专业毕业设计项目,如何去做?一位大龄过期“初级”程序员来讲讲
    黑马Java热门面试题SSM(六)
    Verilog语法之条件编译`ifdef, `ifndef,`else, `elsif, `endif
    python+Tesseract OCR实现截屏识别文字
    Redis的五大数据类型使用的方法详细介绍
    如何利用pg_dump和pg_restore迁移从一个PostgreSQL服务器到另一个服务器,同时保持一致性与高效性?
    前端vue实现页面加水印文字 单个页面所有页面加水印(更新版)
    怎么根据姓名批量创建文件夹?
  • 原文地址:https://blog.csdn.net/dege857/article/details/126359128