首页 > 解决方案 > 仅根据 R 中句子的一部分查找不同的元素

问题描述

我有一个看起来像这样的 data.frame

name=c("PFLU_00001_gene", "PFLU_00001_mRNA", "PFLU_00001", 
       "PFLU_00002_gene", "PFLU_00002_mRNA", "PFLU_00002",
       "PFLU_00003_gene", "PFLU_00003_mRNA", "PFLU_00003")

type=c("gene", "mRNA","CDS","gene", "mRNA","CDS","gene", "mRNA","NA")

df <- data.frame(name, type)

             name type
1 PFLU_00001_gene gene
2 PFLU_00001_mRNA mRNA
3      PFLU_00001  CDS
4 PFLU_00002_gene gene
5 PFLU_00002_mRNA mRNA
6      PFLU_00002  CDS
7 PFLU_00003_gene gene
8 PFLU_00003_mRNA mRNA
9      PFLU_00003  NA

我想从“名称”列中导出仅基于句子第一部分的唯一名称(例如,PFLU_00001)

我希望我的数据看起来像这样。

name 
PFLU_00001
PFLU_00002
PFLU_00003 

非常感谢任何帮助和指导。

带着最良好的祝愿,LDT

标签: rregexdplyrtidyversestringr

解决方案


使用unique+的基本 R 选项gsub

unique(
  transform(
    df["name"],
    name = gsub("_\\D+$", "", name)
  )
)

        name
1 PFLU_00001
4 PFLU_00002
7 PFLU_00003

推荐阅读