#常規(guī)清空傀蓉,加載包
rm(list = ls())
library(table1)
library(lubridate)
setwd("D:\\生信課題\\R語(yǔ)言畫(huà)圖\\R語(yǔ)言統(tǒng)計(jì)與分析\\R語(yǔ)言下載TGCA練習(xí)本")
## 讀取數(shù)據(jù)误甚,csv為例谱净,row.names=1設(shè)置的是第一列為數(shù)據(jù)的名稱(chēng)李请。header=T是指第一行為數(shù)據(jù)的列名。
check.names=F當(dāng)你的列名是以數(shù)字開(kāi)頭的時(shí)候白翻,比如有的時(shí)候數(shù)據(jù)是時(shí)間相關(guān)的滤馍,6:00, 8:00, 10:00等衷恭,會(huì)在最前面顯示一個(gè)x并且冒號(hào)會(huì)給你替換成點(diǎn)(6:00→x6.00)設(shè)置了檢查名稱(chēng)為False之后就不會(huì)有這個(gè)問(wèn)題软瞎。
dat=read.csv(file="COAD_survival.csv",row.names=1,header=T,check.names=F)
attach(dat)?# 匹配數(shù)據(jù),R以下操作均根據(jù)這個(gè)數(shù)據(jù)分析?
units(dat$Age)="years"#加單位?
#加一個(gè)分類(lèi)變量
dat$Age_c=as.factor(ifelse(dat$Age<50,"<50y",? ifelse(dat$Age<=60,"51-60y",">60y")))?
##加標(biāo)簽邀摆,以及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("<", "<", 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, ...))
}
畫(huà)三線(xiàn)圖啼器,~后選擇需要顯示的列的統(tǒng)計(jì)值旬渠;|后選分組;data=選擇數(shù)據(jù)端壳,render.continuous顯示細(xì)節(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)