这是一个后续问题: Subsetting a string based on pre- and suffix
当你有这个命令时:
d <- subset(b, b$X %in% test)
此命令在b$X
中查找与test完全匹配的所有内容。如何操纵它以说明b$X
中的值包含test
?
即如果b$X
的值为"something"
而test
的值为"thing"
。然后我会认为这是一场比赛。
重要更新!测试有512个值,不仅如示例中的那样。
答案 0 :(得分:11)
您可以将%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))
"|"
表示正则表达式中的逻辑或。
答案 1 :(得分:0)
子集中不需要b $。
d <- subset(b, grepl(paste(test, collapse= "|"), X))