Here are two ways for one string, both easily vectorized:

1) sum(charToRaw(x) == charToRaw("|"))

2) sum(strsplit(x, "")[[1]] == "|")

In R-devel the first looks for bytes and the second for characters, and in UTF-8 locale there is a difference.

On Mon, 21 Feb 2005, Marc Mamin wrote:

Hello,

I'm looking for a function that counts the occurences of a given character within a string.

f('|','ab|c|d') => 2


More precisely, I need to complete a vector of strings to ensure that all elements have the same count of a "separator":


        a|b|c
        a
        |a|b|c|d

        =>

        a|b|c||
        a||||
        |a|b|c|d

I guess that scan makes use of an internal function that would do the job...

No, it works on an internal buffer.

--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to