我正在寻找一个函数,它接受数据帧列,检查它是否包含来自字符串向量的文本,并在匹配时对其进行过滤(包括部分文本匹配)。
例如,采用以下数据框:
animal |count
aardvark |8
cat |2
catfish |6
dog |12
dolphin |3
penguin |38
prairie dog|59
zebra |17
以及以下向量
c("cat", "dog")
我想遍历“动物”列,检查该值是否与向量中的字符串之一完全或部分匹配,并过滤掉不匹配的字符串。生成的数据框将是:
animal |count
cat |2
catfish |6
dog |12
prairie dog|59
谢谢!
肖恩
最佳答案
使用dplyr
,您可以尝试以下操作,假设您的表是df
:
library(dplyr)
library(stringr)
animalList <- c("cat", "dog")
filter(df, str_detect(animal, paste(animalList, collapse="|")))
我个人发现,在几个月后检查我的代码时,使用 dplyr
和 stringr
更容易阅读。
关于r - 从向量中过滤包含字符串的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38724690/