R使用向量过滤数据帧

伊博扎诺娃

我有一个包含9列的数据框,我想根据另一个列表过滤行。列表项在数据框的第9列中,但同一列中还有其他信息。

数据框:

ST4.03ch01  Cufflinks   mRNA    152322  153489  .   -   .   ID=PGSC0003DMT400039136;Parent=PGSC0003DMG400015133;Source_id=RNASEQ26.809.0;Mapping_depth=16.192011;Class=4;name=Defensin
ST4.03ch01  GLEAN   mRNA    160499  160663  .   -   .   ID=PGSC0003DMT400039133;Parent=PGSC0003DMG400015132;Source_id=PGSC0003DMG000019750;Class=2;name=Defensin J1-2
ST4.03ch01  Cufflinks   mRNA    160379  161885  .   -   .   ID=PGSC0003DMT400039134;Parent=PGSC0003DMG400015132;Source_id=RNASEQ26.803.0;Mapping_depth=35.840147;Class=2;name=Defensin J1-2
ST4.03ch01  Cufflinks   mRNA    225084  229469  .   +   .   ID=PGSC0003DMT400058594;Parent=PGSC0003DMG400022764;Source_id=RNASEQ39.8869.0;Mapping_depth=158.359878;Class=1;name=Glutamate decarboxylase isoform3
ST4.03ch01  Cufflinks   mRNA    248940  249501  .   -   .   ID=PGSC0003DMT400058700;Parent=PGSC0003DMG400022799;Source_id=RNASEQ39.8875.0;Mapping_depth=16.138790;Class=5;name=Gene of unknown function
ST4.03ch09  GLEAN   mRNA    50581315    50583516    .   -   .   ID=PGSC0003DMT400009752;Parent=PGSC0003DMG400003817;Source_id=PGSC0003DMG000004746;Class=2;name=RNA-directed DNA polymerase (Reverse transcriptase); Ribonuclease H
ST4.03ch05  Cufflinks   mRNA    1469122 1469329 .   -   .   ID=PGSC0003DMT400064680;Parent=PGSC0003DMG400025123;Source_id=RNASEQ55.4892.0;Mapping_depth=2.218355;Class=2;name=Class S F-box protein

向量:

 [1] "PGSC0003DMT400035774"                     "PGSC0003DMT400086293"                 "PGSC0003DMT400086672" "PGSC0003DMT400095645" "PGSC0003DMT400091693" "PGSC0003DMT400080908"
 [7] "PGSC0003DMT400087868" "PGSC0003DMT400086807" "PGSC0003DMT400085319" "PGSC0003DMT400088916" "PGSC0003DMT400076675" "PGSC0003DMT400092517"
[13] "PGSC0003DMT400009752" "PGSC0003DMT400084819" "PGSC0003DMT400092699" "PGSC0003DMT400085283" "PGSC0003DMT400086058" "PGSC0003DMT400064680"

列表项与ID = ........部分匹配。我理想的结果是拥有name=...等同于列表项。

理想输出:

PGSC0003DMT400009752    RNA-directed DNA polymerase (Reverse transcriptase); Ribonuclease H
PGSC0003DMT400064680    Class S F-box protein

有任何想法吗?

谢谢你

罗纳克·沙

您可以将文本提取到单独的列之后'ID'和之中'name',然后仅保留向量中存在的那些行。

library(dplyr)

df %>%
  tidyr::extract(v9, c('ID', 'details'), 'ID=(\\w+);.*name=(.*)') %>%
  filter(ID %in% vector) %>%
  select(ID, details) -> result

result
#                    ID                                                             details
#1 PGSC0003DMT400009752 RNA-directed DNA polymerase (Reverse transcriptase); Ribonuclease H
#2 PGSC0003DMT400064680                                               Class S F-box protein

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何基于列名的向量过滤R中的数据帧?

来自分类Dev

如何使用字符向量过滤数据帧

来自分类Dev

使用变量过滤 JSON 数据

来自分类Dev

通过包含重复元素的向量过滤数据集

来自分类Dev

R:按组和值向量过滤的更好方法?

来自分类Dev

使用for循环在R中过滤数据帧

来自分类Dev

通过字符向量列表过滤数据帧

来自分类Dev

使用变量过滤复制数据源

来自分类Dev

R:使用向量为sapply馈送数据帧名称

来自分类Dev

如何使用R中的向量选择数据帧的子集

来自分类Dev

在R中过滤数据帧

来自分类Dev

R Data.table根据大于值的列向量过滤行

来自分类Dev

使用dplyr在R中按组过滤数据帧

来自分类Dev

使用dplyr在R中按组过滤数据帧

来自分类Dev

使用REGEX的grepl()的subset()来过滤R中的数据帧

来自分类Dev

使用formattable过滤数据帧

来自分类Dev

如何使用R中的向量逐列过滤数据?

来自分类Dev

使用R中不同数据帧的过滤信息从数据帧中的列进行随机采样

来自分类Dev

使用另一个向量复制R数据帧向量值

来自分类Dev

R数据帧中行的向量化编号

来自分类Dev

向量中的R个数据帧列

来自分类Dev

R:遍历向量中的数据帧列表

来自分类Dev

R数据帧中的行选择向量

来自分类Dev

如何通过R中唯一值的数量过滤数据

来自分类Dev

在R中以15分钟为增量过滤大量日期/时间数据

来自分类Dev

无法过滤采样数据帧 - R

来自分类Dev

如何使用多列中的变量过滤sqlite表中的行数据?

来自分类Dev

使用VBA宏按变量过滤

来自分类Dev

使用VBA宏按变量过滤