提问人:bvowe 提问时间:3/30/2019 更新时间:3/30/2019 访问量:10287
R 返回第一个下划线后的所有字符
R Returning all characters after the first underscore
问:
示例数据
x=c("AG.av08_binloop_v6","TL.av1_binloopv2")
示例 ATTEMPT
y=gsub(".*_","",x)
样品 DESIRED
WANT=c("binloop_v6","binloopv2")
基本上,我的目标是提取第一个下划线值之后的所有字符。
答:
14赞
akrun
3/30/2019
#1
在 中,我们可以将零个或多个任何字符( - 这里是可以匹配任何字符的元字符)更改为零个或多个字符,这些字符不是字符串开头 () 的 ()。pattern
.*
.
_
[^_]*
^
sub("^[^_]*_", "", x)
#[1] "binloop_v6" "binloopv2"
如果我们不这样指定它,则将匹配到字符串中的最后一个,直到该子字符串将丢失,返回“v6”和“binloopv2”_
_
一个更简单的选择是word
stringr
library(stringr)
word(x, 2, sep = "_")
#[1] "binloop" "binloopv2"
4赞
d.b
3/30/2019
#2
regexpr
给出第一个匹配项的位置(在本例中)。然后可用于提取部分从相关位置到末端(_
substring
x
nchar(x)
)
substring(x, regexpr("_", x) + 1, nchar(x))
#[1] "binloop_v6" "binloopv2"
评论
1赞
akrun
3/30/2019
我猜是最快的选项substring
评论