[R] Matching a character in a string
Paul Hiemstra
p.hiemstra at geo.uu.nl
Mon Jan 25 21:55:45 CET 2010
Fabrice DELENTE wrote:
> Hello.
>
> Sorry for this very basic question but I didn't find (of didn't understand)
> the answer either in the help or in the online guide.
>
> I have a string, let's say "hello". I want to know if there is some
> character in it, let's say an 'o'.
>
> I tried
>
>
>> charmatch("o", strstplit("hello",""))
>>
>
> but it gives NA (why??)
>
> Thinking it may be a type problem, I tried
>
>
>> charmatch("o",as.character(strsplit("hello","")))
>>
>
> but it gives NA too (why???)
>
> So how can I know if a given string contains a given char?
>
> Thanks!
>
>
try:
grep("o", "hello")
if the output is 1, there is a match. Note that the command is
vectorized so:
grep("o", c("hello","pizza", "spam", "ogle"))
also works, picking out items 1 and 4 as containing an "o". The first
argument to grep is a regular expression, and this can be very powerful.
For example, which words start with a "p":
grep("^p", c("hello","pizza", "spam", "ogle"))
Check out more stuff on regular expressions on the internet. They are
very powerful, but take some time to learn.
cheers,
Paul
--
Drs. Paul Hiemstra
Department of Physical Geography
Faculty of Geosciences
University of Utrecht
Heidelberglaan 2
P.O. Box 80.115
3508 TC Utrecht
Phone: +3130 274 3113 Mon-Tue
Phone: +3130 253 5773 Wed-Fri
http://intamap.geo.uu.nl/~paul
More information about the R-help
mailing list