将数据框与列表进行比较,并提取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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)