我有一个包含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] 删除。
我来说两句