В pattern
мы можем изменить ноль или более любых символов (.*
- здесь .
- метасимвол, который может соответствовать любому символу) на ноль или более символов, которые не являются _
([^_]*
) с начала (^
) строки.
sub("^[^_]*_", "", x)
#[1] "binloop_v6" "binloopv2"
Если мы не укажем его как таковой, _
будет соответствовать до последнего _
вstring и до тех пор, пока подстрока будет потеряна, возвращая v6 и binloopv2
Более простой вариант будет word
из stringr
library(stringr)
word(x, 2, sep = "_")
#[1] "binloop" "binloopv2"