我有一个如下所示的字符向量:
chars <- c("Classics football boots", "Classics football shoes","football shoes", "new footbal shoes")
在这个chars
对象中,我想只选择元素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多个值。所以我想根据一些字符串从矢量中选择值(在这个例子中&#34; Classics&#34;)。然后,如果我找到该单词,我希望只能选择所需的那部分字符串。在这个例子中,我想选择该值的第二个和第三个元素。希望现在更清楚。
答案 0 :(得分:1)
使用grepl
中的word
和stringr
,
chars[grepl('Classics', chars)] <- stringr::word(chars[grepl('Classics', chars)], 2, 3)
chars
#[1] "football boots" "football shoes" "football shoes" "new footbal shoes"
答案 1 :(得分:0)
为什么不简单:
gsub("Classics\\s+", "", chars)
# [1] "football boots" "football shoes" "football shoes" "new footbal shoes"