R語言畫table-三線圖

#常規(guī)清空,加載包

rm(list = ls())

library(table1)

library(lubridate)

setwd("D:\\生信課題\\R語言畫圖\\R語言統(tǒng)計與分析\\R語言下載TGCA練習(xí)本")

## 讀取數(shù)據(jù),csv為例,row.names=1設(shè)置的是第一列為數(shù)據(jù)的名稱。header=T是指第一行為數(shù)據(jù)的列名。

check.names=F當(dāng)你的列名是以數(shù)字開頭的時候,比如有的時候數(shù)據(jù)是時間相關(guān)的,6:00, 8:00, 10:00等,會在最前面顯示一個x并且冒號會給你替換成點(6:00→x6.00)設(shè)置了檢查名稱為False之后就不會有這個問題。

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

attach(dat)?# 匹配數(shù)據(jù),R以下操作均根據(jù)這個數(shù)據(jù)分析?

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, ...))

}

畫三線圖,~后選擇需要顯示的列的統(tǒng)計值;|后選分組;data=選擇數(shù)據(jù),render.continuous顯示細節(jié),可選

c(.="Mean (SD)", .="Median [Min, Max]",.="Median [Q1, Q3]",.="Median [IQR]");overall=F:通體數(shù)值不顯示。

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)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容