[R] grep with search terms defined by a variable
David Winsemius
dwinsemius at comcast.net
Tue Aug 3 12:49:02 CEST 2010
On Aug 3, 2010, at 12:05 AM, Daniel Malter wrote:
>
> Hi, I have a good grasp of grep() and gsub() for finding and
> extracting
> character strings. However, I cannot figure out how to use a search
> term
> that is stored in a variable when the search string is more complex.
>
> #Say I have a string, and want to know whether the last name
> "Jannings" is
> in the string. This is done by
>
> names=c("Emil Jannings")
> grep("Emil",names)
>
> #Yet, I need to store the search terms in a variable, which works
> for the
> very simple example
>
> search.term="Emil"
> grep(search.term,names)
>
> #but I cannot get it to work for the more difficult example in which
> I want
> to do something like
>
> grep(^search.term,names)
> grep("^search.term",names)
> grep("^"search.term,names)
>
> #Implying that the search term must be the first part of the string
> that is
> being searched
>
> #Ultimately, I need to to loop over several strings stored in
> search.term,
> for example,
>
> names=c("Emil Jannings","Charles Chaplin","Katherine Hepburn","Meryl
> Streep")
> search.term=c("Emil","Meryl")
>
> for(i in 1:length(names)){
> print(grep(^search.term[i],names))
> }
>
> So the questions I have are two. 1. How do I concatenate terms that
> I would
> normally quote (like "^") with variables that contain search terms
> and that
> normally would not be quoted? 2. How do I run this over indices of the
> variable that contains the search terms?
You have gotten answers to both but for the second question there
exists a loopless alternative. This is implicitly a logical OR
operations so you could construct a single grep expression with the
collaps argument to paste:
> grep( paste("^", search.term, sep="", collapse="|"), names)
[1] 1 4
It may not be quite as flexible because it would not deliver the match
information in a sequence that aligns with the order of the search
terms.
--
David.
>
> I greatly appreciate any help,
> Daniel
>
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/grep-with-search-terms-defined-by-a-variable-tp2311294p2311294.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list