我想使用文本值列表来过滤数据框,但是我希望该列表值成为包含对象。
我也希望不区分大小写。
感谢您的帮助。
楼
代码:
a = c("Louis","Frank")
MyFilteredData <- MyData[MyData$Singer %in% a,]
数据示例:
Singer
"Frank Sinatra"
"Louis Armstrong"
"Bing Crosby"
我的过滤器的结果将是:
"Frank Sinatra"
"Louis Armstrong"
答案 0 :(得分:1)
在这里,我们可以使用grep
,因为匹配是局部的
MyData[grep(paste0("\\b(", paste(a, collapse="|"), ")\\b"),
MyData$Singer),, drop = FALSE]
或tidyverse
library(dplyr)
library(stringr)
MyData %>%
filter(str_detect(Singer, str_c(a, collapse="|")))