我正在尝试从下面的字符串中提取 AOB1
或 AOB2
或 AOB3
。
df <- data.frame(
id = c(1,2,3),
string = c("acv-32-AOB1", "osa-122-AOB2","cds-543-rr-AOB3")
)
> df
id string
1 1 acv-32-AOB1
2 2 osa-122-AOB2
3 3 cds-543-rr-AOB3
有什么想法吗?
谢谢!
最佳答案
我们可以使用 base R
中的 trimws
trimws(df$string, whitespace =".*-")
[1] "AOB1" "AOB2" "AOB3"
或者使用 base R
中的 sub
sub(".*-", "", df$string)
[1] "AOB1" "AOB2" "AOB3"
或者如果我们需要提取“AOB”后跟数字
library(stringr)
str_extract(df$string, "AOB\\d+")
[1] "AOB1" "AOB2" "AOB3"
https://stackoverflow.com/questions/68852435/