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
、
的 grepl
和 word
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"
我有一个字符向量,如下所示:
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
、
grepl
和 word
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"