• ggrcs包2.4版本上线: 一个用于绘制直方图+限制立方样条+双坐标轴图的R包


    目前本人写的ggrcs包新的2.4版本已经在CRAN上线,
    在这里插入图片描述
    需要的可以使用代码安装

    install.packages("ggrcs")
    
    • 1

    如果原来安装了1.0版本,可以通过Rstudio进行升级
    在这里插入图片描述
    在这里插入图片描述
    这样就可以升级到最新版本了,新版本修正了一些前期的错误和增加了一些新功能,如绘制双组分类的RCS图形,增加了P值的自动生成,待我一一道来。我们以ggrcs包自带的数据进行演示,先进行常规操作,导入数据和R包

    library(rms)
    library(ggplot2)
    library(scales)
    library(ggrcs)
    dt<-smoke
    dd<-datadist(dt)
    options(datadist='dd')
    fit<- cph(Surv(time,status==1) ~ rcs(age,4)+gender, x=TRUE, y=TRUE,data=dt)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    假设我们想了解年龄和吸烟发病率关系

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

    在这里插入图片描述
    可以进行一些细节的设置,详细的可以看我上一遍文章《首发:ggrcs包,一个用于绘制直方图+限制立方样条+双坐标轴图的R包》,这里主要讲下新功能

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

    在这里插入图片描述
    生成图后我们可以P.Nonlinear=T给图加上P值,默认是放在左上角

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

    在这里插入图片描述
    你也可以通过Pvalue这个设置自定义P值大小

    ggrcs(data=dt,fit=fit,x="age",histcol="blue",
          histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",
          ylab="吸烟HR",title ="年龄和吸烟概率关系",
          liftname="概率密度",lift=F,P.Nonlinear=T,Pvalue="<0.05")
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    生成图片我们还是可以继续修改的,而且对接了ggplot的借口,我们可以通过ggplot方式继续对图片进行修改,假设生成图片后我想在图片中间转折地方加一条竖线

    p<-ggrcs(data=dt,fit=fit,x="age",histcol="blue",
             histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",
             ylab="吸烟HR",title ="年龄和吸烟概率关系",
             liftname="概率密度",lift=F,P.Nonlinear=T,Pvalue="<0.05")
    p+geom_vline(aes(xintercept=45.6),colour="red", linetype=1)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    这样就极大的提高了我们对图片操作的灵活性,后期你想加横线,文字加其他的都是可以的。下面我们来进行双组RCS绘制的操作,也是一行代码搞定

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

    在这里插入图片描述
    可以通过groupcol这个指标对颜色进行自定义

    ggrcs(data=dt,fit=fit,x="age",group="gender",groupcol=c("red","blue"),histbinwidth=1)
    
    • 1

    在这里插入图片描述
    除了双组外,也支持了对左轴名字的更改

    ggrcs(data=dt,fit=fit,x="age",group="gender",
          groupcol=c("red","blue"),histbinwidth=1,ribalpha=0.5,xlab ="年龄",
          ylab="吸烟HR",title ="年龄和吸烟概率关系",leftaxislimit=c(0,1),liftname="概率密
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    添加P值

    ggrcs(data=dt,fit=fit,x="age",group="gender",
          groupcol=c("red","blue"),histbinwidth=1,ribalpha=0.5,xlab ="年龄",
          ylab="吸烟HR",title ="年龄和吸烟概率关系",
          leftaxislimit=c(0,1),liftname="概率密度",P.Nonlinear=T,Pvalue="<0.05")
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    这里P值显示的位置我们并不满意,我们可以自行通过坐标,xP.Nonlinear,yP.Nonlinear调整

    ggrcs(data=dt,fit=fit,x="age",group="gender",
          groupcol=c("red","blue"),histbinwidth=1,ribalpha=0.5,xlab ="年龄",
          ylab="吸烟HR",title ="年龄和吸烟概率关系",leftaxislimit=c(0,1),liftname="概率密度",
          P.Nonlinear=T,Pvalue="<0.05",xP.Nonlinear=25,yP.Nonlinear=18)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    下面介绍logistic回归模型的使用,使用既往文章《R语言绘制限制立方条图2(基于logistic回归和线性回归)》的例子,不要在意数据的内容,只是举个例子,先导入数据和R包

    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') #为后续程序设定数据环境
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    拟合模型

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

    绘图

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

    在这里插入图片描述
    更改颜色和对细节自定义

    ggrcs(data=be,fit=fit,x="age",group="ln_yesno",histbinwidth=1,groupcol=c("red","blue"),
          xlab ="年龄",
          ylab="吸烟HR",title ="年龄和吸烟概率关系",leftaxislimit=c(0,1),liftname="概率密度",
          P.Nonlinear=T,Pvalue="<0.05",xP.Nonlinear=40,yP.Nonlinear=70)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    细节都差不多,想详细了解请看文章《首发: ggrcs包,一个用于绘制直方图+限制立方样条+双坐标轴图的R包》,如果你对结果不放心,想了解绘图原理,请看文章《R语言ggplot绘制直方图+限制立方样条+双坐标轴图》。
    下一个版本将开发增加截点功能,就是类似下图文章中对曲线进行转折点判断,
    在这里插入图片描述
    然后像图片一样生成转折点两边的HR数据,类似某些文章的阈值效应分析。
    开发完这个功能,ggrcs包基本算完成了,如果有什么bug或者还需要有什么值得改进的地方或者需要增加什么功能,欢迎你来告诉我。

  • 相关阅读:
    docker 安装redis(最新版)
    微信小程序里边怎么添加付费视频_怎么做付费视频小程序
    NeuralRecon拜读:单目视频实时连贯三维重建
    SpringBoot框架SpEL表达式注入漏洞复现与原理分析
    EC2日志内容推送至CloudWatch
    Go 语言中的日期与时间
    为什么说Java程序员都要学习JVM?阿里架构师分享JVM学习教程
    css文字中间省略号使用js实现
    Redis Redis的数据结构 - 通用命令 - String类型命令 - Hash类型命令
    论文研读|Protecting Intellectual Property of Deep Neural Networks with Watermarking
  • 原文地址:https://blog.csdn.net/dege857/article/details/126721216