R 从 str_split 中获取最后一个元素

R get last element from str_split

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

require(stringr)

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

但是我如何使用字符串列表来执行此操作?

require(stringr)

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

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

谢谢

我们可以用 sapply 遍历 list 并用 tail

得到最后一个元素的 'n' 个数
sapply(Split, tail, 1)
#[1] "STRING" "STRING"

如果只有一个字符串,那么请使用[[list转换为vector并使用tail

获取最后一个元素
tail(Split[[1]], 1)

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

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

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

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