Я провожу анализ выживаемости для каждого из уровней экспрессии 566 генов. Я сделал это, объединив функцию coxph()
с функцией lapply
, и это сработало. Прямо сейчас, из-за большого количества рассмотренных генов, я застрял в том, как выполнить фильтрацию P-значения, чтобы сохранить только гены со значительными показателями выживаемости, то есть когда P <0,05.
Это фиктивные данные:
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)
}
Но это неэффективно! Любая помощь будет принята!