应用生存分析功能

时间:2016-12-20 05:10:52

标签: r function apply

我有一个患者数据/存活数据框,基因表达数据看起来像这样

# Patients event time Gene_1 ... Gene_100
1 Patient_1 1 356 3455 ... 59393
2 Patient_2 1 1233 6632 ... 43299
3 Patient_3 0 1224 3636 ... 44222
4 Patient_4 0 56 30603 ... 23999
...
100 Patient_100 1 853 ... 25888

我所做的是编写一个函数,将每个单基因(例如Gene_1)的基因表达数据分类为四分位数,然后选择最低和最高四分位数用于生存分析中的比较:

library(dplyr); library(survival)
quartile_function <- function(dataframe, column_x){
   dataframe$quartile <- ntile(dataframe[ ,column_x], 4)
   dataframe <- subset(dataframe, quartile == 1 | quartile == 4)
   group <- dataframe$quartile
   coxph( Surv(time, event) ~ group, data=dataframe )[['coefficients']]
}

然后我做了一个cox比例风险分析,我只对coef

感兴趣

当我逐列选择基因时,这一切都有效,但我很难将此函数应用于数据框中包含基因表达数据的每个列。

有任何想法可以更有效地完成这项工作吗?如何使用基因表达数据轻松地将此功能应用于每个列,以便我对每个基因的coef进行概述?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望拨打quartile_function 100次,并且每次要传递不同的列号= column_x

在这种情况下,以下内容应该有效

sapply(seq(a,b), function(x) quartile_function(df,x),simplify = T)

其中a =对应于Gene_1的列号,b =对应于Gene_100的列号