You might also find match and pmatch of use here.
------------ 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 > > ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager (it.supp...@cancer.ucl.ac.uk). ********************************************************************** ______________________________________________ R-help@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.