我有一个我想 retrofit 的相框.
Expression Dataframes and Module list
gene_express = data.frame(gene = c('gene1', 'gene2', 'gene3', 'gene4', 'gene5', 'gene6', 'gene7', 'gene8', 'gene9', 'gene10'),
sample1 = sample(0:10,10), sample2 = sample(0:10,10), sample3 = sample(0:10,10), sample4 = sample(0:10,10), row.names =1)
module1 = c('gene1', 'gene2', 'gene10', 'gene8')
module2 = c('gene2', 'gene9', 'gene6', 'gene5', 'gene10')
module3 = c('gene4', 'gene10', 'gene1', 'gene8')
module4 = c('gene5', 'gene8', 'gene2', 'gene7', 'gene6',
'gene5', 'gene10')
Module_list = list(module1, module2, module3, module4)
names(Module_list) <- c('module1', 'module2', 'module3',
'module4')
My code to generate the desire dataframe
MASM_mat = data.frame()
for(module in names(Modules)){
module_genes = modules[[module]]
for(column in colnames(gene_express)){
module_mean = gene_express[rownames(gene_express) %in%
module_gene, ] %>% pull(column) %>% summary()
module_mean = module_mean[[4]] #this the mean
module_mean_table = data.frame(module, module_mean) %>%
`colnames<-` (c('Module', column))
MASM_mat = merge(MASM_mat,MASM, all=T)
}}
我从代码中得到的结果:
我想要的结果:
我想要的是每个样本中每个模块的平均值(即基因表达矩阵中其组成基因的平均值).