r语言 - 从字符串中删除不必要的字符


AB753217|Influenza A virus (A/African Stonechat/Vietnam/8/2009(H9N2)) |H9N2 |4 (HA)|2009-11-12

我想从更快的头中删除一些字符,这样使用r

输出看起来像这样
AB753217|A/African Stonechat/Vietnam/8/2009|H9N2 |HA|2009-11-12

我试过使用gsub(),但似乎我的代码是错误的:

df_1$isolate_name <- gsub("Influenza A virus \(","", df_1$isolate_name) 
df_1$isolate_name <- gsub("\)_segment.*gene", "", df_1$isolate_name)

您可以删除|(之间的一切不是(|:\|[^(|]+\(,或()|之间的一切不是|:[()][^|]*\|,并重新插入|

s <- "AB753217|Influenza A virus (A/African Stonechat/Vietnam/8/2009(H9N2)) |H9N2 |4 (HA)|2009-11-12"
gsub("\|[^(|]+\(", "|", s) |> gsub("[()][^|]*\|", "|", x=_) #In two separate steps
gsub("(?<=\|)[^(|]+\(|[()][^|]*(?=\|)", "", s, perl=TRUE) #In one step using non consuming look ahead / behind and or |
#[1] "AB753217|A/African Stonechat/Vietnam/8/2009|H9N2 |HA|2009-11-12"

最新更新