[R] replace a whole word with sub()
Marc Schwartz
marc_schwartz at me.com
Fri Nov 13 16:21:43 CET 2009
On Nov 13, 2009, at 9:13 AM, Giulio Di Giovanni wrote:
>
>
>
> Dear all,
>
>
>
> I cannot figure out how to solve a small problem (well, not for me),
> surely somebody can help me in few seconds.
>
>
>
> I have a series of strings in a vector X of the type "xxx", "yyy",
> "zzz", "IgA", "IgG", "kkk", "IgM", "aaa".
>
> I want to substitute every ENTIRE string beginning with "Ig" with "0".
>
> So, I'd like to have "xxx", "yyy", "zzz", "0", "0", "kkk", "0", "aaa".
>
>
>
> I can easily identify these strings with grep("^Ig", X), but if I
> use this criterion in the sub() function (sub("^Ig", "0", X) I
> obviously get "0A", "0G" etc.
>
>
>
> I didn't expect to do it in this way and I tried with metacharacters
> and regexps in order to grep and substitute the whole word (\b \>,
> $). I don't post here my tryings, because they were obviously wrong.
>
> Please can you help me?
x <- c("xxx", "yyy", "zzz", "IgA", "IgG", "kkk", "IgM", "aaa")
> sub("^Ig.*$", "0", x)
[1] "xxx" "yyy" "zzz" "0" "0" "kkk" "0" "aaa"
You need to have the search regex include the entire element and not
just the first couple of characters in order to replace the entire
element.
HTH,
Marc Schwartz
More information about the R-help
mailing list