从一列中提取特定字符串模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从一列中提取特定字符串模式相关的知识,希望对你有一定的参考价值。

我想从R中的一列提取具有模式gene=something的特定字符串。

输入的一个例子:

df <- 'V1 
       ID=gene92;DbX;gene=BH1;genePro
       ID=gene91;DbY;gene=BH2;genePro;inf2
       ID=gene90;DbY;gene=BH3;genePro;inf2'
df <- read.table(text=df, header=T)

预期输出的示例:

dfout <- 'V1 
         gene=BH1
         gene=BH2
         gene=BH3'
    dfout <- read.table(text=dfout, header=T)

有什么想法实现这一目标?

答案

你也可以使用

gsub(".*(gene=.*?)(;|$).*", "\1", df$V1)
# [1] "gene=BH1" "gene=BH2" "gene=BH3"

所以我们只匹配跟随任何东西的部分gene=....*,然后是;或字符串的结尾,;|$

另一答案
library(stringr)
str_extract(df$V1, 'gene=BH[0-9]+')
#[1] "gene=BH1" "gene=BH2" "gene=BH3"

以上是关于从一列中提取特定字符串模式的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2012 Express 如何从一列中提取信息并将其与具有表达式限制的另一列进行比较

根据另一列的位置从一组列中返回值

DataFrame:从一列中的字符串字典到两列中的浮点数 'latitude': '34.04', 'longitude': '-118.24' [重复]

Excel VBA:从一列中的字符串中查找和删除多个值

根据另一列中的值从一列中减去值(SQL)

Python - 从列中提取/复制分隔文本到新列 xlsx