让我们说
x = "R is so tough for SAS programmer"
y = "R why you so hard"
现在我们必须在第8个地方之前找到这个词,第一个空格("")遇到从右到左,即向后。
如果x
,则为"so"
如果是y
,则为"y"
我该怎么做?
答案 0 :(得分:2)
假设你在一个向量中有两个字符串:
x = c("R is so tough for SAS programmer", "R why you so hard")
然后,如果我正确理解了您的问题,您可以使用substr
的组合来提取每个字符串的前7个字符,然后使用sub
来提取最后一个空格后的部分:
sub(".*\\s", "", substr(x, 1, 7))
#[1] "so" "y"
使用
可能更安全sub(".*\\s", "", trimws(substr(x, 1, 7), "right"))
将切断substr
导致的向量右侧的任何空格。这可以确保sub
调用不会意外地匹配字符串末尾的空格。
答案 1 :(得分:2)
以下是word
和sub
library(stringr)
word(sub("^(.{1,7}).*", "\\1", x), -1)
#[1] "so" "y"
x <- c("R is so tough for SAS programmer", "R why you so hard")