检查字符串是否包含矢量[R]中的项目以外的其他内容

问题描述 投票:1回答:1

我有一个包含一列字符串的数据框。我想检查每个字符串中的任何元素是否与一个或多个预定义向量中的任何元素匹配,然后返回一个新的逻辑列。使用grepl()可以轻松完成此操作。

但是(这是我需要帮助的部分),我还想检查字符串是否包含除关键字向量中所包含的元素以外的任何其他元素。 示例数据:

matchvector1 <- c("Apple","Banana","Orange") matchvector2 <- c("Strawberry","Kiwi","Grapefruit") id <- c(1,2,3) string_column <- c(paste0(c("Apple","Banana"),collapse=", "), paste0(c("Strawberry","Kiwi"), collapse = ", "), paste0(c("Apple","Pineapple"), collapse = ", ")) df <- data.frame(id, string_column) df$string_column <- as.character(df$string_column) matches_vector1 <- grepl(paste(matchvector1, collapse = "|"), df$string_column) matches_vector2 <- grepl(paste(matchvector2, collapse = "|"), df$string_column)

输出应类似于:

matches_vector1: TRUE FALSE TRUE matches_vector2: FALSE TRUE FALSE unmatched_words: FALSE FALSE TRUE

我被困在最后一部分。是否有一种简单的方法可以使用grepl()(或其他功能)在

except

关键字列表中进行匹配?我怀疑这将涉及以某种方式使用否定性环视,但是与此相关的少量现有线程似乎无法回答我的问题。 我有一个包含一列字符串的数据框。我想检查每个字符串中的任何元素是否与一个或多个预定义向量中的任何元素匹配,然后返回一个新的逻辑...
r grepl
1个回答
1
投票
[一种选择是将'string_column'与separate_rows分开,按'id'分组,检查'string_column'any并置向量中是否没有%in%个元素
© www.soinside.com 2019 - 2024. All rights reserved.