基本图形绘制学R让人秃

R语言画table-三线图

2020-10-10  本文已影响0人  young5100

#常规清空,加载包

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)

上一篇下一篇

猜你喜欢

热点阅读