怎么进行大数据中R语言的生存分析

发布时间:2021-12-27 17:56:27 作者:柒染
来源:亿速云 阅读:160

本篇文章为大家展示了怎么进行大数据中R语言的生存分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

        根据上面的生存分析的介绍可以大概的了解了生存分析的概念和原理以及KM曲线的绘制。但是生存分析中COX回归的结果不容易直接输出,下面简单的介绍一种自定义函数,批量并且规则的输出结果的方式。

#载入所需的R包

library("survival")library("survminer")

#载入并查看数据集

data("lung")head(lung)
inst time status age sex ph.ecog ph.karno pat.karno meal.cal wt.loss1    3  306      2  74   1       1       90       100     1175      NA2    3  455      2  68   1       0       90        90     1225      153    3 1010      1  56   1       0       90        90       NA      154    5  210      2  57   1       1       90        60     1150      115    1  883      2  60   1       0      100        90       NA       06   12 1022      1  74   1       1       50        80      513       0

#cox 回归分析

res.cox <- coxph(Surv(time, status) ~ sex, data = lung)res.coxsummary(res.cox)Call:coxph(formula = Surv(time, status) ~ sex, data = lung)  n= 228, number of events= 165       coef exp(coef) se(coef)      z Pr(>|z|)   sex -0.5310    0.5880   0.1672 -3.176  0.00149 **---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1    exp(coef) exp(-coef) lower .95 upper .95sex     0.588      1.701    0.4237     0.816Concordance= 0.579  (se = 0.022 )Rsquare= 0.046   (max possible= 0.999 )Likelihood ratio test= 10.63  on 1 df,   p=0.001111Wald test            = 10.09  on 1 df,   p=0.001491Score (logrank) test = 10.33  on 1 df,   p=0.001312

         COX回归的结果中需要提取HR,HR的置信区间,wald.test和 p.value的信息,最简单的是在summary结果中进行复制粘贴,当然效率很低。假设当变量成百上前后,会发生什么呢?

--------------------复制粘贴N*成百上千次!!!

还可以构建自定义函数,数据框的形式一次输出所有变量的COX回归结果

#查看待分析的变量

covariates <- names(lung[,4:10])covariates[1] "age"       "sex"       "ph.ecog"   "ph.karno"  "pat.karno" "meal.cal"  "wt.loss"

#构建自定义函数,以数据框形式输出结果

univ_formulas <- sapply(covariates,                        function(x) as.formula(paste('Surv(time, status)~', x)))

 #设定函数输出的信息                  

univ_models <- lapply( univ_formulas, function(x){coxph(x, data = lung)})# Extract data univ_results <- lapply(univ_models,                       function(x){                           x <- summary(x)                          p.value<-signif(x$wald["pvalue"], digits=2)                          wald.test<-signif(x$wald["test"], digits=2)                          beta<-signif(x$coef[1], digits=2);#coeficient beta                          HR <-signif(x$coef[2], digits=2);#exp(beta)                          HR.confint.lower <- signif(x$conf.int[,"lower .95"], 2)                          HR.confint.upper <- signif(x$conf.int[,"upper .95"],2)                          HR <- paste0(HR, " (",                                        HR.confint.lower, "-", HR.confint.upper, ")")                          res<-c(beta, HR, wald.test, p.value)                          names(res)<-c("beta", "HR (95% CI for HR)", "wald.test",                                         "p.value")                          return(res)                          #return(exp(cbind(coef(x),confint(x))))                         })

#输出所有变量的COX结果

res <- t(as.data.frame(univ_results, check.names = FALSE))as.data.frame(res)
             beta HR (95% CI for HR) wald.test p.valueage          0.019            1 (1-1)       4.1   0.042sex          -0.53   0.59 (0.42-0.82)        10  0.0015ph.ecog       0.48        1.6 (1.3-2)        18 2.7e-05ph.karno    -0.016      0.98 (0.97-1)       7.9   0.005pat.karno    -0.02   0.98 (0.97-0.99)        13 0.00028meal.cal  -0.00012            1 (1-1)      0.29    0.59wt.loss     0.0013         1 (0.99-1)      0.05    0.83

OK!可以write了,至于csv还是txt ,啦意随。。。

上述内容就是怎么进行大数据中R语言的生存分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. 如何使用TCGAbiolinks进行生存分析
  2. 怎么用R语言进行KM生存

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

r语言 大数据

上一篇:怎么用Servlet显示图片

下一篇:Servlet的init注意点有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》