应用功能进行生存分析
Apply function for survival analysis
我有一个包含患者数据/存活率和基因表达数据的数据框,如下所示
# 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
感兴趣
当我逐列选择基因时一切正常,但我很难将此函数应用于数据框中包含基因表达数据的每一列。
有什么想法可以更有效地做到这一点吗?我如何才能轻松地将此函数应用于包含基因表达数据的每一列,以便我了解每个基因的系数?
如果我没理解错的话,你想调用 quartile_function
100 次并且每次你想传递不同的列号 = column_x
在那种情况下,以下应该有效
sapply(seq(a,b), function(x) quartile_function(df,x),simplify = T)
其中 a= 对应于 Gene_1 的列号,b = 对应于 Gene_100
的列号
我有一个包含患者数据/存活率和基因表达数据的数据框,如下所示
# 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
当我逐列选择基因时一切正常,但我很难将此函数应用于数据框中包含基因表达数据的每一列。
有什么想法可以更有效地做到这一点吗?我如何才能轻松地将此函数应用于包含基因表达数据的每一列,以便我了解每个基因的系数?
如果我没理解错的话,你想调用 quartile_function
100 次并且每次你想传递不同的列号 = column_x
在那种情况下,以下应该有效
sapply(seq(a,b), function(x) quartile_function(df,x),simplify = T)
其中 a= 对应于 Gene_1 的列号,b = 对应于 Gene_100
的列号