R语言画table-三线图

作者: young5100 | 来源:发表于2020-10-10 22:40 被阅读0次

    #常规清空,加载包

    rm(list = ls())

    library(table1)

    library(lubridate)

    setwd("D:\\生信课题\\R语言画图\\R语言统计与分析\\R语言下载TGCA练习本")

    ## 读取数据,csv为例,row.names=1设置的是第一列为数据的名称。header=T是指第一行为数据的列名。

    check.names=F当你的列名是以数字开头的时候,比如有的时候数据是时间相关的,6:00, 8:00, 10:00等,会在最前面显示一个x并且冒号会给你替换成点(6:00→x6.00)设置了检查名称为False之后就不会有这个问题。

    dat=read.csv(file="COAD_survival.csv",row.names=1,header=T,check.names=F)

    attach(dat) # 匹配数据,R以下操作均根据这个数据分析 

    units(dat$Age)="years"#加单位 

    #加一个分类变量

    dat$Age_c=as.factor(ifelse(dat$Age<50,"<50y",  ifelse(dat$Age<=60,"51-60y",">60y"))) 

    ##加标签,以及P值

    dat$OS=factor(dat$OS,levels = c(0,1,2),labels = c("alive","dead","P-value"))

    outcome=dat$OS

    rndr <- function(x, name, ...) {

      if (length(x) == 0) {

        y <- dat[[name]]

        s <- rep("", length(render.default(x=y, name=name, ...)))

        if (is.numeric(y)) {

          p <- t.test(y ~ outcome)$p.value

        } else {

          p <- chisq.test(table(y, droplevels(outcome)))$p.value

        }

        s[2] <- sub("<", "&lt;", format.pval(p, digits=3, eps=0.001))

        s

      } else {

        render.default(x=x, name=name, ...)

      }

    }

    rndr.strat <- function(label, n, ...) {

      ifelse(n==0, label, render.strat.default(label, n, ...))

    }

    画三线图,~后选择需要显示的列的统计值;|后选分组;data=选择数据,render.continuous显示细节,可选

    c(.="Mean (SD)", .="Median [Min, Max]",.="Median [Q1, Q3]",.="Median [IQR]");overall=F:通体数值不显示。

    table1(~Gender+Race+Age_c+Age+cancer_status+histological_type+stage_event_pathologic_stage+TNM|OS,data = dat,

          render.continuous=c(.="Mean (SD)"),droplevels = F,render = rndr,render.strat=rndr.strat,

          overall = F)

    相关文章

      网友评论

        本文标题:R语言画table-三线图

        本文链接:https://www.haomeiwen.com/subject/dxqspktx.html