[R] grep with search terms defined by a variable
Matt Shotwell
shotwelm at musc.edu
Tue Aug 3 06:27:53 CEST 2010
Daniel,
If you want to search for each term at the beginning of a sting, using
the regular expression construct '^', you might use the following
> search.terms <- c("Emil", "Meryl")
> names <- c("Emil Jannings",
+ "Charles Chaplin",
+ "Katherine Hepburn",
+ "Meryl Streep")
> for(term in search.terms) {
+ print(grep(paste("^",term,sep=""),names))
+ }
[1] 1
[1] 4
-Matt
On Tue, 2010-08-03 at 00:05 -0400, 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?
>
> I greatly appreciate any help,
> Daniel
>
>
>
>
--
Matthew S. Shotwell
Graduate Student
Division of Biostatistics and Epidemiology
Medical University of South Carolina
More information about the R-help
mailing list