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

Извлечь последнее слово в строке в R

Какой самый элегантный способ извлечь последнее слово в строке предложения?

Предложение не заканчивается символом "." Слова разделены пробелами.

sentence <- "The quick brown fox"
TheFunction(sentence)

должен вернуться: "лиса"

Я не хочу использовать пакет, если возможно простое решение. Если существует простое решение на основе пакета, это тоже прекрасно.

4b9b3361

Ответ 1

tail(strsplit('this is a sentence',split=" ")[[1]],1)

В принципе, как было предложено @Señor O.

Ответ 2

Только для полноты: библиотека stringr содержит функцию для этой проблемы.

library(stringr)

sentence <- "The quick brown fox"
word(sentence,-1)
[1] "fox"

Ответ 3

x <- 'The quick brown fox'
sub('^.* ([[:alnum:]]+)$', '\\1', x)

Это будет ловить последнюю строку чисел и символов до конца строки.

Вы также можете использовать функции regexec и regmatches, но я нахожу sub cleaner:

m <- regexec('^.* ([[:alnum:]]+)$', x)
regmatches(x, m)

Подробнее см. ?regex и ?sub.

Ответ 4

Другая упакованная опция stri_extract_last_words() из пакета stringi

library(stringi)

stri_extract_last_words("The quick brown fox")
# [1] "fox"

Функция также удаляет любую пунктуацию, которая может быть в конце предложения.

stri_extract_last_words("The quick brown fox? ...")
# [1] "fox"

Ответ 5

Переходя в направлении пакета, это самый простой ответ, который я могу придумать:

library(stringr)

x <- 'The quick brown fox'
str_extract(x, '\\w+$')
#[1] "fox"