# 加载包及生成数据框,这里生成数据框主要是为了方便大家理解,因为大家通常都是将Excel的数据读进R,存储为数据框格式
library(survival)
library(Hmisc)
age <- rnorm(200, 50, 10)
bp <- rnorm(200,120, 15)
d.time <- rexp(200)
cens <- runif(200,.5,2)
death <- d.time <= cens
os <- pmin(d.time, cens)
sample.data <- data.frame(age = age,bp = bp,os = os,death = death)
#让我们看一下生成的例子数据的前6行
head(sample.data)
##age bp os death
## 1 33.18822 114.6965 1.106501 FALSE
## 2 41.86970 123.2265 1.365944 FALSE
## 3 50.41484 124.9522 0.867119 FALSE
## 4 45.66936 127.3237 1.155765 TRUE
## 5 39.79024 134.8846 1.257501 TRUE
## 6 31.89088 140.9382 1.125504 FALSE
rcorr.cens的代码及结果,第一个值就是C指数,同时也有Dxy的值
rcorr.cens(sample.data$age, Surv(sample.data$os, sample.data$death))
##C IndexDxy S.D. nmissing
## 4.528492e-01 -9.430156e-02 5.565299e-02 2.000000e+02 0.000000e+00
## uncensored Relevant Pairs Concordant Uncertain
## 1.290000e+02 3.172800e+04 1.436800e+04 8.072000e+03
rcorrcens的代码及结果,注意rcorrcens的写法是写成formula(公式)的形式,较为方便;而rcorr.cens的 写法是只能在前面写上一个自变量,并且不支持data = ...的写法,有点繁琐。较为遗憾的是这两种方法得到的C指数的标准误需要通过S.D./2间接得到。
r <- rcorrcens(Surv(os, death) ~ age + bp,data = sample.data)
r
## Somers' Rank Correlation for Censored DataResponse variable:Surv(os, death)
##
## CDxy aDxySDZ P n
## age 0.453 -0.094 0.094 0.056 1.69 0.0902 200
## bp 0.498 -0.003 0.003 0.054 0.06 0.9517 200
R语言字符串处理常用函数R语言中常用的字符串处理函数:
(1)得到字符串长度:nchar()
# 生成示范字符串
(2)剪切字符串:strsplit()
# 对字符串进行剪切
(3) 得到子字符串:substr()
# 得到子字符串
(4) 判断字符串中是否有某个字串:grepl()
# 判断字符串中是否有某个字串
(5) 字符串替换:gsub()
(6)字符串定位
在Hmisc包里,有一个函数可以很方便的对文本的的目标字符串进行定位,substring.location()
Hmisc,主要用里面的recode函数来转换数据,比如把c("Jan", "Feb", "Mar")转换成1, 2, 3reshape/reshape2,主要用来整理数据,做pivot table,方便进行下一步的统计或绘图
ggplot2,绘图
scales,用来生成特定的数据格式,比如百分数
R.matlab,以matlab支持的格式导出数据
dplyr,支持对data.frame的灵活操作,很方便!