R从str_split获取最后一个元素

Kil*_*ail 9 regex r stringr

我有一个R字符串列表,我想得到每个字符串的最后一个元素

require(stringr)

string_thing <- "I_AM_STRING"
Split <- str_split(string_thing, "_")
Split[[1]][length(Split[[1]])]
Run Code Online (Sandbox Code Playgroud)

但我怎么能用字符串列表呢?

require(stringr)

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

#desired result
answer <- c("STRING", "THING")
Run Code Online (Sandbox Code Playgroud)

谢谢

akr*_*run 9

我们可以遍历listwith sapply并获得最后一个元素的'n'个数tail

sapply(Split, tail, 1)
#[1] "STRING" "STRING"
Run Code Online (Sandbox Code Playgroud)

如果只有一个字符串,那么请使用[[转换listvector并获取最后一个元素tail

tail(Split[[1]], 1)
Run Code Online (Sandbox Code Playgroud)


Hug*_*ugh 7

正如对您的问题的评论所暗示的,这适用于gsub

gsub("^.*_", "", string_thing)
Run Code Online (Sandbox Code Playgroud)

我建议您也注意以下几种情况。

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