在第一个空格之前获取字符

时间:2014-08-25 01:27:29

标签: r grep substring

我正在寻找一种grep方法来获取第一个空格之前的字符串中的字符。

我已经破解了以下功能,因为我无法弄清楚如何使用grep中的R类型命令来执行此操作。

有人可以帮助grep解决方案 - 如果有的话......

beforeSpace <- function(inWords) {
    vapply(inWords, function(L) strsplit(L, "[[:space:]]")[[1]][1], FUN.VALUE = 'character')
}
words <- c("the quick", "brown dogs were", "lazier than quick foxes")
beforeSpace(words)

R>          the quick         brown dogs were lazier than quick foxes 
              "the"                 "brown"                "lazier" 

如果有比grep(或我的函数,beforeSpace)更好的方法,请告诉我。

3 个答案:

答案 0 :(得分:12)

或仅sub,归功于@flodel:

sub(" .*", "", words)
# and if the 'space' can also be a tab or other white-space:
sub("\\s.*","",words)
#[1] "the"    "brown"  "lazier"

答案 1 :(得分:4)

您可以使用qdap的{​​{1}}(字符串的开头到特定字符),如下所示:

beg2char

答案 2 :(得分:4)

使用stringi

library(stringi) 
stri_extract_first(words, regex="\\w+")
#[1] "the"    "brown"  "lazier"