web-dev-qa-db-ja.com

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

ありがとう

11
KillerSnail

あなたの質問へのコメントが示唆するように、これは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" ""  
8
Hugh

listsapplyでループし、tailで 'n'個の最後の要素を取得できます。

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

文字列が1つしかない場合は、[[は、listvectorに変換し、tailを使用して最後の要素を取得します

tail(Split[[1]], 1)
11
akrun