Подтвердить что ты не робот

Извлечь первые (или последние) n символов строки

Я хочу извлечь первые (или последние) n символов строки. Это будет эквивалентно Excel LEFT() и RIGHT(). Небольшой пример:

# create a string
a <- paste('left', 'right', sep = '')
a
# [1] "leftright"

Я хотел бы создать b, строку, которая равна первым четырем буквам a:

b
# [1] "left"

Что мне делать?

4b9b3361

Ответ 1

См. ?substr

R> substr(a, 1, 4)
[1] "left"

Ответ 2

Пакет stringr предоставляет функцию str_sub, которая немного проще в использовании, чем substr, особенно если вы хотите извлечь правые части своей строки:

R> str_sub("leftright",1,4)
[1] "left"
R> str_sub("leftright",-5,-1)
[1] "right"

Ответ 3

Вы можете легко получить функции Right() и Left(), начиная с пакета Rbase:

  • правая функция

    right = function (string, char){ substr(string,nchar(string)-(char-1),nchar(string)) }

  • левая функция

    left = function (string,char){ substr(string,1,char) }

вы можете использовать эти два пользовательских функционала точно так же, как left() и right() в excel. Надеюсь, вы найдете это полезным.

Ответ 4

Сделайте это простым и используйте основные функции R:

# To get the LEFT part:
> substr(a, 1, 4)
[1] "left"
> 
# To get the MIDDLE part:
> substr(a, 3, 7)
[1] "ftrig"
> 
# To get the RIGHT part:
> substr(a, 5, 10)
[1] "right"

Функция substr() сообщает вам, где начинаются и останавливаются substr(x, start, stop)