这是这里的后续问题:
Subsetting a string based on pre- and suffix
当你有这个命令时:
d <- subset(b, b$X %in% test)
此命令查找
b$X
中的所有内容完全匹配测试。我怎样才能操纵它来说明 b$X
中的值已经足够了包含 test
?IE。如果
b$X
有一个值 "something"
和 test
有 "thing"
.那么我会认为这是一场比赛。重要更新!测试有 512 个值,而不仅仅是示例中的 1。
最佳答案
您可以更换 %in%
与 grepl
:
# examples
x <- c("thing", "something", "some", "else")
test <- c("thing", "some")
# exact match
x %in% test
# [1] TRUE FALSE TRUE FALSE
# substring match (regex)
pattern <- paste(test, collapse = "|") # create regex pattern
grepl(pattern, x)
# [1] TRUE TRUE TRUE FALSE
您的任务的整个命令:
d <- subset(b, grepl(paste(test, collapse= "|"), b$X))
"|"
表示逻辑或正则表达式。
关于regex - 子集不是基于完全匹配,而是基于 R 中的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21408410/