Extrae la última palabra en cadena en R

¿Cuál es la manera más elegante de extraer la última palabra en una cadena de oración?

La oración no termina con un “.” Las palabras están separadas por espacios en blanco.

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

debería regresar: “zorro”

No quiero usar un paquete si es posible una solución simple. Si existe una solución simple basada en el paquete, eso también está bien.

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

Básicamente según lo sugerido por @ Señor O.

Solo para completar: el stringler de biblioteca contiene una función para exactamente este problema.

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

Eso atrapará la última cadena de números y caracteres antes del final de la cadena.

También puedes usar las funciones de regexec y regmatches , pero me parece sub limpiador:

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

Ver ?regex y ?sub para más información.

Otra opción empaquetada es stri_extract_last_words() del paquete stringi

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

La función también elimina cualquier puntuación que pueda estar al final de la oración.

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

Yendo en la dirección del paquete, esta es la respuesta más simple que puedo pensar:

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