R get last element from str_split

KillerSnail picture KillerSnail · Mar 22, 2017 · Viewed 13.6k times · Source

I have a R list of strings and I want to get the last element of each

require(stringr)

string_thing <- "I_AM_STRING"
Split <- str_split(string_thing, "_")
Split[[1]][length(Split[[1]])]

but how can I do this with a list of strings?

require(stringr)

string_thing <- c("I_AM_STRING", "I_AM_ALSO_STRING_THING")
Split <- str_split(string_thing, "_")

#desired result
answer <- c("STRING", "THING")

Thanks

Answer

akrun picture akrun · Mar 22, 2017

We can loop through the list with sapply and get the 'n' number of last elements with tail

sapply(Split, tail, 1)
#[1] "STRING" "STRING"

If there is only a single string, then do use [[ to convert list to vector and get the last element with tail

tail(Split[[1]], 1)