Hi, you can use regular expression with grep.
For example: >exactmatch<-function(s,l){return(grep(paste('^',s,'$',sep=''),l))} >t<-c('a','ab','abc','c','ca','ab') > exactmatch('ab',t) [1] 2 6 HTH Marc -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Petr Pikal Sent: Thursday, July 08, 2004 2:28 PM To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: Re: [R] Problem with the grep function Hi You can use %in% > nom%in%"b" [1] FALSE TRUE FALSE which gives you a logical vector of exact matches > (1:3)[nom%in%"b"] [1] 2 or charmatch > charmatch("b",nom) [1] 2 > charmatch("ab",nom) [1] 3 if you expect only one exact match. But I expect someone can give you better answer. Cheers Petr On 8 Jul 2004 at 9:20, [EMAIL PROTECTED] wrote: > Let me present to you my problem : > > I have a character vector x and I would like to obtain the indices of > the elements of this vector that yielded exactly a match. > > For example, x=nom, pattern="b", I would to obtain 2 because "b" is > on the second position. > > First program : > nom <- c("a","b","ab") > grep("b",nom) > 2 3 > > Then I try the option extended =FALSE (instead of TRUE by default) and > I obtain '2 3' a second time. > > Please can you help me : How can I obtain only 2 in using the grep > function (without using the match function). > > Thanks you > > Julie AUBERT > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html Petr Pikal [EMAIL PROTECTED] ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html