考虑这些数据:
str <- c("OTB_MCD_100-119_0_0", "PS_SPF_16-31_0_0", "PP_DR/>16-77")
如何将它变成这样的字符串?
str
[1] "OTB_MCD" "PS_SPF" "PP_DR"
我尝试了substr,但是当角色长度不同时它不起作用。
答案 0 :(得分:2)
我们可以使用sub
匹配零个或多个_
,后跟0个或更多不是字母的字符([^A-Za-z]*
),直到结束($
)字符串,将其替换为空白(""
)
sub("_*[^A-Za-z]*$", "", str)
#[1] "OTB_MCD" "PS_SPF" "PP_DR"