根据单词列表子集数据框

时间:2014-10-13 19:58:58

标签: regex r

例如

List 1: 

Hello  
Green   

Data frame 2: 

Date          Sentence
1/1/2011      Hello world  
1/2/2011      Red ball and blue river  
1/3/2011      My laptop  

新数据框应为

Date      Sentence
1/1/2011  Hello world

1 个答案:

答案 0 :(得分:1)

正如@RichardScriven评论的那样,您正在寻找以下内容。通过交替运算符|折叠关键字列表,您实际上创建了一个正则表达式模式,告诉正则表达式引擎匹配交替运算符左侧的所有内容,或者右侧的所有内容。

> x <- c('Hello', 'Green')
> df <- data.frame(DATE = c('1/1/2011', '1/2/2011', '1/3/2011'),
                 Sentence = c('Hello world', 'Red ball and blue river', 'My laptop'))
> df[grepl(paste(x, collapse = '|'), df$Sentence, ignore.case=T),]

输出

      DATE    Sentence
1 1/1/2011 Hello world