[R] matching strings in a list

Marc Schwartz marc_schwartz at me.com
Thu Jul 16 19:57:03 CEST 2015


> On Jul 16, 2015, at 12:40 PM, tryingtolearn <inshique at ymail.com> wrote:
> 
> Say I have a list: 
> [[1]] "I like google"
> [[2]] "Hi Google google" 
> [[3]] "what's up" 
> 
> and they are tweets. And I want to find out how many tweets mention google
> (the answer should be 2). 
> If I string split and unlist them, then I would get the answer of 3. How do
> I make sure I get just 2? 


See ?grepl presuming that you just want a count of the matches.

If you want it to also be case insensitive, set 'ignore.case = TRUE’.

For example:

Tweets <- list("I like google", "Hi Google google", "what's up”)

> Tweets
[[1]]
[1] "I like google"

[[2]]
[1] "Hi Google google"

[[3]]
[1] "what's up”

> sapply(Tweets, function(x) grepl("google", x, ignore.case = TRUE))
[1]  TRUE  TRUE FALSE

> sum(sapply(Tweets, function(x) grepl("google", x, ignore.case = TRUE)))
[1] 2


Regards,

Marc Schwartz



More information about the R-help mailing list