【问题标题】:p.value filtration from an lapply-function applied for the function coxph来自应用于函数 coxph 的 lapply 函数的 p.value 过滤
【发布时间】:2020-05-13 09:43:47
【问题描述】:

我正在对 566 个基因的每个表达水平进行生存分析。我通过将函数coxph() 与函数lapply 组合来做到这一点,并且效果很好。现在,由于考虑的基因数量众多,我一直坚持如何进行 P 值过滤,以便仅保留具有显着存活率的基因,即当 P

这是虚拟数据:

 df1 = structure(list(ERLIN2 = structure(c(`TCGA-A1-A0SE-01` = 1L, `TCGA-A1-A0SH-01` = 1L, 
`TCGA-A1-A0SJ-01` = 1L), .Label = c("down", "up"), class = "factor"), 
    BRF2 = structure(c(`TCGA-A1-A0SE-01` = 2L, `TCGA-A1-A0SH-01` = 1L, 
    `TCGA-A1-A0SJ-01` = 2L), .Label = c("down", "up"), class = "factor"), 
    ZNF703 = structure(c(`TCGA-A1-A0SE-01` = 2L, `TCGA-A1-A0SH-01` = 1L, 
    `TCGA-A1-A0SJ-01` = 2L), .Label = c("down", "up"), class = "factor"), 
    time = c(43.4, 47.21, 13.67), event = c(0, 0, 0)), row.names = c("TCGA-A1-A0SE-01", 
"TCGA-A1-A0SH-01", "TCGA-A1-A0SJ-01"), class = "data.frame")

之后,要接收结果,请输入以下代码行:

#library
if(!require(survival)) install.packages('survival')
library('survival')

#run survival analysis
df2=lapply(c("ERLIN2",    "BRF2",      "ZNF703"),

       function(x) {

         formula <- as.formula(paste('Surv(time,event)~',as.factor(x)))
         coxFit <- coxph(formula, data = df1)
         summary(coxFit)
       })

从这里开始,我尝试按如下方式进行 P 值过滤:

for (i in 3){
    df2 = df2 %>% subset(df2[[i]]$logtest[3] < 0.05)
}

但是效率低下!任何帮助都将不胜感激!

【问题讨论】:

  • 我无法复制您的列表并收到错误消息,“'closure' 类型的对象不是子集”
  • @Mohanasundaram 感谢您的警告!这是我的错,我解决了。请再次审查并帮助我。谢谢!

标签: r survival-analysis cox-regression


【解决方案1】:

如果您有兴趣通过任何变量(在您的情况下为 logtest 的 pvalue)对列表进行子设置,我建议您使用 rlist

library(rlist)

df3 <-  list.filter(df2, logtest[["pvalue"]] < 0.05)

这将根据指定的条件过滤列表。条件也可以嵌套。

【讨论】:

  • 我看到了“p 值过滤”的请求,并认为我正在查看随机积分的请求。
猜你喜欢
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
  • 2023-04-10
  • 2017-03-18
  • 2015-04-26
  • 2021-08-26
  • 2016-04-10
  • 1970-01-01
相关资源
最近更新 更多