比较具有部分相同文件名的文件,并提取R

时间:2019-03-04 03:32:01

标签: r

我有一个复杂的问题。我有文件列表(2套,每套48个文件)。一个从“ MetaXcan”开始,另一个从“结果”开始,如下所示

One set:
MetaXcan-Adipose_Subcutaneous-within-indexSnpRegion-500-Noduplicates.csv
MetaXcan-Adipose_Visceral_Omentum-within-indexSnpRegion-500-Noduplicates

Second set:
results-gtex_v7_Adipose_Subcutaneous_imputed
results-gtex_v7_Adipose_Visceral_Omentum_imputed

我想将第一组文件中的基因与第二组文件中的相应基因进行比较(文件名均包含相同的组织名称),并将两个文件中相同的行合并为第三数据帧。这意味着最后我应该有48个新文件,其中包含两个文件中共有的基因。在R中怎么可能?

第一组中的文件看起来像

Gene.stable.ID    Gene.stable.ID.version    Chromosome.scaffold.name    Gene.start..bp. Gene.end..bp.   Gene.name
ENSG00000116213 ENSG00000116213.11  1   3547331 3569325 WRAP73

第二组中的文件如下:

gene    gene_name   zscore  effect_size pvalue  var_g   pred_perf_r2    pred_perf_pval  pred_perf_qval  n_snps_used n_snps_in_cov   n_snps_in_model
ENSG00000205352.6   PRR13   -5.1058947  -0.106277196    3.29E-07    0.140082139 0.204794849 8.65E-19    NA  31  33  33

因此,结果是我需要从第一个集合中提取具有相同“ gene.stable.ID.version”的行,并从第二个集合中提取具有“ gene”的行。

我认为这些步骤包括;

  

1)在两个单独的列表中读取每个集中的所有文件名2)   阅读两个列表中都存在的所有文件3)比较   文件名,只要找到相同的文件名,就比较基因   从第一集到第二集并提取相关行?

是否在正确的管道之上?我已经阅读了列表中的文件名,但是当我尝试读取列表中的所有文件时,它遇到了错误。我被困在开始:(代码是:

GinW <- list.files(path = ".", pattern = "^MetaXcan" )
MetaResults <- list.files(path = ".", pattern = "^results")

out <- data.frame()

for(i in 1:2)
{
    GinW_files <- (read.csv(GinW[i]))
    MetaResults_files <- (read.csv(MetaResults[i]))

    x1 <- MetaResults_files[which(MetaResults_files$gene == GinW_files$Gene.stable.ID.version), ]
}

0 个答案:

没有答案