【发布时间】:2017-03-22 05:36:10
【问题描述】:
我有一个 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")
谢谢
【问题讨论】:
-
我建议使用
gsub(".*_(.*)", "\\1", string_thing)或gsub(".*_", "", string_thing)之类的东西,而不是拆分字符串然后提取最后一段...... -
如前所述,拆分是不必要的。您想提取字符串的一部分。您也可以使用
str_extract。试试str_extract(string_thing, "(?<=_)[^_]*$"),这意味着:“提取与下划线不同的所有内容,该下划线从下划线开始并到达字符串的末尾”。 -
这个问题可以有自己的答案。这是一个具体的例子,这个具体的例子可以有一个具体的答案。问题是关于字符串的问题,问题的答案是针对列表的,没有提供字符串示例。这种字符串问题可以用 stringr 轻松解决: word(string_thing[2], 4:5, sep = ("_")) result: "string" "thing".
-
现在回答为时已晚,但如果其他人确实想使用最后的下划线拆分字符串,这应该为你做:
_(?=[^_]+$)跨度>