我的例子如下。我有一个包含文本行的df和一个包含id的df。我想知道id是否出现在我的文本中。这是我的代码-我忽略了什么?
df <- data.frame(text=c("random text with ID _OMaUIC4Om",
"random text with ID _tqlb6VsVN",
"random text with ID 0AcMp9JJ8q",
"random text with ID _tqlb6VsVN",
"random text with ID _tqlb6VsVN",
"random text with ID"))
df.id <- data.frame(id=c("_4pGCmTAat","_tqlb6VsVN","_OMaUIC4Om","0AcMp9JJ8q"))
check <- subset(df, text %in% df.id$id)
check <- subset(df, grep(df.id$id, text))
我们可以将它们paste
并传递到grepl
subset(df, grepl(paste(df.id$id, collapse="|"), text))
与产出
# text
#1 random text with ID _OMaUIC4Om
#2 random text with ID _tqlb6VsVN
#3 random text with ID 0AcMp9JJ8q
#4 random text with ID _tqlb6VsVN
#5 random text with ID _tqlb6VsVN