在R中提取字符串中的最后一个单词

时间:2013-07-15 15:41:33

标签: r

提取句子字符串中最后一个单词的最优雅方法是什么?

句子不以“。”结尾。 单词由空格分开。

sentence <- "The quick brown fox"
TheFunction(sentence)

应该返回:“狐狸”

如果可以使用简单的解决方案,我不想使用包。 如果存在基于包的简单解决方案,那也没关系。

5 个答案:

答案 0 :(得分:41)

为了完整起见:库stringr包含一个完全解决此问题的函数。

library(stringr)

sentence <- "The quick brown fox"
word(sentence,-1)
[1] "fox"

答案 1 :(得分:22)

tail(strsplit('this is a sentence',split=" ")[[1]],1)

基本上是@SeñorO。

的建议

答案 2 :(得分:12)

x <- 'The quick brown fox'
sub('^.* ([[:alnum:]]+)$', '\\1', x)

这将捕获字符串之前的最后一串数字和字符。

您还可以使用regexecregmatches功能,但我发现sub更清洁:

m <- regexec('^.* ([[:alnum:]]+)$', x)
regmatches(x, m)

有关详细信息,请参阅?regex?sub

答案 3 :(得分:12)

另一个打包的选项是stri_extract_last_words()

中的stringi
library(stringi)

stri_extract_last_words("The quick brown fox")
# [1] "fox"

该功能还会删除句子末尾的任何标点符号。

stri_extract_last_words("The quick brown fox? ...")
# [1] "fox"

答案 4 :(得分:5)

顺便提一下,这是我能想到的最简单的答案:

library(stringr)

x <- 'The quick brown fox'
str_extract(x, '\\w+$')
#[1] "fox"