Search code examples
rregexstringr

Get last element from str_split


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")

Solution

  • As the comment on your question suggests, this is suitable for gsub:

    gsub("^.*_", "", string_thing)
    

    I'd recommend you take note of the following cases as well.

    string_thing <- c("I_AM_STRING", "I_AM_ALSO_STRING_THING", "AM I ONE", "STRING_")
    gsub("^.*_", "", string_thing)
    [1] "STRING"   "THING"    "AM I ONE" ""