将每个 for 循环的结果保存为新的数据框

Save results of each for loop as new data frame

这是我的第一个 post 对于任何不便之处,我们深表歉意。

我正在尝试使用函数 getProfileData() 从 cBioPortal 中提取 RNAseq 数据。我想使用从该列表的元素生成的参数在我的列表的每个元素上调用此函数。我包含了一个库、示例癌症和示例基因,可以通过此函数调用。

library(cgdsr)
mycgds = CGDS("http://www.cbioportal.org/")

cancers1 = c("cesc_tcga", "ov_tcga", "ucs_tcga", "ucec_tcga")
genes = c("PTCH1", "PTCH2")

mRNAseqExtractor <- function(){   
  for(i in cancers1){
    i_RNAseq <- paste(i, "_rna_seq_v2_mrna", sep="")        
    i_all <- paste(i, "_all", sep="")        
    getProfileData(mycgds, genes, i_RNAseq, i_all)   } }

mRNAseqExtractor()

基本上,我希望这个循环的每次迭代都将这个 getProfileData(mycgds, hedgehog_genes, i_RNAseq, i_all) 的输出保存到一个新的数据框。

PS。 我一直在寻找类似的 post 但找不到在每次迭代中生成新的全局数据帧的任何东西。

您可以使用 lapply 到 return 数据帧列表。

profiles <- lapply(cancers1, function(i) {
    i_RNAseq <- paste(i, "_rna_seq_v2_mrna", sep="")        
    i_all <- paste(i, "_all", sep="")        
    getProfileData(mycgds, genes, i_RNAseq, i_all)
})

然后您可以像这样访问各个数据框:

# access first data frame
print(profiles[[1]])