Select 个来自带有 strsplit 的字符向量的元素

Select elements from a character vector with strsplit

我有一个字符向量,如下所示:

chars <- c("Classics football boots", "Classics football shoes","football shoes", "new footbal shoes")

在这个 chars 对象中,我只想 select 元素 football shoes & football boots。保持顺序,因为我需要将向量替换回 dataframe.

如果尝试了很多东西,但我认为这最接近:

for (i in grep("Classics",chars)){
  temp <- as.character(strsplit(chars[i], " ")[[1]][c(2,3)])
  temp2 <- as.character(na.omit(temp))
  chars[i] <- temp2
}

我怎样才能得到这样的对象:

c("football boots", "football shoes","football shoes", "new footbal shoes")

所以我只想触及包含经典(或任何感兴趣的词)的值。

更新:

看到问题不明确我会尽量详细一点:

我拥有的向量包含 4000 多个值。所以我想 select 基于某些字符串的向量中的值(在本例中为 "Classics")。然后,如果我找到那个词,我希望能够 select 仅需要该字符串的部分。在此示例中,我想 select 该值的第二个和第三个元素。希望现在更清楚了。

一个想法使用来自 stringr

greplword
chars[grepl('Classics', chars)] <- stringr::word(chars[grepl('Classics', chars)], 2, 3)
chars
#[1] "football boots"    "football shoes"    "football shoes"    "new footbal shoes"

为什么不简单地这样:

gsub("Classics\s+", "", chars)
# [1] "football boots"    "football shoes"    "football shoes"    "new footbal shoes"