首页 > 解决方案 > 将数据框与列表进行比较并提取 R 中的匹配行

问题描述

我的主数据框有 415526 个条目(行),代表 51 个微生物物种中的蛋白质列表。由于每种蛋白质具有不同数量的蛋白质结构域,因此每个条目的列数不同。

df

AC_peg_0686__[locus_tag=Adeh_0688]  Response_reg    Sigma54_activat HTH_8   
AC_peg_0687__[locus_tag=Adeh_0689]  Ribosomal_L31   
AC_peg_0688__[locus_tag=Adeh_0690]  Rho_N   Rho_RNA_bind    ATP-synt_ab 
AC_peg_0689__[locus_tag=Adeh_0691]  No_Domain   
AC_peg_0690__[locus_tag=Adeh_0692]  N_methyl    
AC_peg_0691__[locus_tag=Adeh_0693]  DNA_ligase_aden DNA_ligase_OB   DNA_ligase_ZBD  HHH_2   BRCT    
AC_peg_0692__[locus_tag=Adeh_0694]  Acylphosphatase 
AC_peg_0693__[locus_tag=Adeh_0695]  Radical_SAM DUF2344 
AC_peg_0694__[locus_tag=Adeh_0696]  RNase_E_G   
AC_peg_0695__[locus_tag=Adeh_0697]  Virul_fac_BrkB  
AC_peg_0696__[locus_tag=Adeh_0698]  Bac_DNA_binding 
AC_peg_0697__[locus_tag=Adeh_0699]  FHIPEP  
AC_peg_0698__[locus_tag=Adeh_0700]  Bac_export_2    
AC_peg_0699__[locus_tag=Adeh_0701]  Bac_export_1    
AC_peg_0700__[locus_tag=Adeh_0702]  Bac_export_3    
AC_peg_0701__[locus_tag=Adeh_0703]  FliP    
AC_peg_0702__[locus_tag=Adeh_0704]  FliO
.
.
.
.....and so on....till 415526

同样,我有另一个文件,其中包含蛋白质结构域列表。它有 38 个条目。我必须将主数据框与列表进行比较,并提取与列表条目匹配的行。我的清单看起来像这样

df1

Bac_export_1
Bac_export_2
Bac_export_3
Bac_export_4
ChapFlgA
CheC
FHIPEP
Flg_hook
FlgD
FlgD_ig
FlgI
FlgI
FlgM
FlgN
FlhC
FlhD
FlhE


我想要列表中每个蛋白质结构域的单独文件。

我试图比较和相交函数,但它们没有成果。

df3 <- intersect(df$col , df1$col)

这是我的最终文件的外观示例。此文件仅包含与列表中的“MotB_plug”条目匹配的条目。

Aliivibrio_salmonicida_LFI1238__peg_0951___VSAL_RS05180 MotB_plug   OmpA
Aliivibrio_wodanis__peg_0687___AWOD_RS03580 MotB_plug   OmpA
Grimontia_hollisae_ATCC_33564__peg_1011___AL542_RS08920 MotB_plug   OmpA
Grimontia_hollisae_ATCC_33564__peg_1828___AL542_RS13325 MotB_plug   OmpA
Paraphotobacterium_marinum_NSCS20N07D__peg_0036___CF386_RS00180 MotB_plug   OmpA
Vibrio_alginolyticus_ATCC_17749__peg_2782___N646_RS14135    MotB_plug   OmpA
Vibrio_alginolyticus_ATCC_17749__peg_3208___N646_RS16270    MotB_plug   OmpA

就像上面一样,列表的每个元素应该有不同的文件。

标签: rbioinformatics

解决方案


推荐阅读