仅根据 R 中句子的一部分查找不同的元素
Find distinct elements based only on a part of the sentence in 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
我想从“names”列导出唯一名称
仅基于句子的第一部分(例如 PFLU_00001)
我希望我的数据看起来像这样。
name
PFLU_00001
PFLU_00002
PFLU_00003
非常感谢任何帮助和指导。
致以最良好的祝愿,
LDT
我们可以使用str_remove
来删除_
后跟一个或多个不是_
([^_]+$
)的字符($
) 并指定一个正则表达式环视 ((?<=[0-9])
) 以便它匹配数字
后面的 _
library(dplyr)
library(stringr)
df %>%
transmute(name = str_remove(name, "(?<=[0-9])_[^_]+$")) %>%
distinct(name)
-输出
# name
#1 PFLU_00001
#2 PFLU_00002
#3 PFLU_00003
使用 unique
+ gsub
的基础 R 选项
unique(
transform(
df["name"],
name = gsub("_\D+$", "", name)
)
)
给予
name
1 PFLU_00001
4 PFLU_00002
7 PFLU_00003
我有一个 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
我想从“names”列导出唯一名称 仅基于句子的第一部分(例如 PFLU_00001)
我希望我的数据看起来像这样。
name
PFLU_00001
PFLU_00002
PFLU_00003
非常感谢任何帮助和指导。
致以最良好的祝愿, LDT
我们可以使用str_remove
来删除_
后跟一个或多个不是_
([^_]+$
)的字符($
) 并指定一个正则表达式环视 ((?<=[0-9])
) 以便它匹配数字
_
library(dplyr)
library(stringr)
df %>%
transmute(name = str_remove(name, "(?<=[0-9])_[^_]+$")) %>%
distinct(name)
-输出
# name
#1 PFLU_00001
#2 PFLU_00002
#3 PFLU_00003
使用 unique
+ gsub
unique(
transform(
df["name"],
name = gsub("_\D+$", "", name)
)
)
给予
name
1 PFLU_00001
4 PFLU_00002
7 PFLU_00003