Другой достаточно простой способ - использовать регулярные выражения и sub
:
sub('.*(?=.$)', '', string, perl=T)
Итак, «избавьтесь от всего, за чем следует один символ». Чтобы получить больше символов в конце, добавьте, однако, много точек в проверочное утверждение:
sub('.*(?=.{2}$)', '', string, perl=T)
, где .{2}
означает ..
или «любые два символа», что означает «избавиться от всего, за которым следуют два символа».
sub('.*(?=.{3}$)', '', string, perl=T)
для трех символов и т. Д. Вы можете установить количество символов для захвата с переменной, но вам придется paste
значение переменной в строке регулярного выражения:
n = 3
sub(paste('.+(?=.{', n, '})', sep=''), '', string, perl=T)