我正在寻找一种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
)更好的方法,请告诉我。
答案 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"