[R] Comparison of numeric and character vectors

R. Michael Weylandt michael.weylandt at gmail.com
Wed Jan 4 00:06:42 CET 2012


There's a coercion to character implicit (i.e., the number 999 gets
converted to the string "999") and then comparison is done in lexical
(dictionary) order in which digits are lower than characters.

You'll also note you get apparently strange behavior like "34" < "9"
if you don't think about things in terms of dictionary orderings.

Does that make sense?

Michael

On Tue, Jan 3, 2012 at 4:56 PM, Ista Zahn <istazahn at gmail.com> wrote:
> Hi all,
>
> I just discovered that R considers characters to be really big:
>
>> "a" > 999
> [1] TRUE
>> "a" > 9e307
> [1] TRUE
>> "a" > 9e308
> [1] FALSE
>
> and that some characters are literally infinitely big:
>
>> "Z" >= Inf
> [1] TRUE
>
> although not all:
>
>> "a" > Inf
> [1] FALSE
>
>
> This came as a surprise to me (although it is quite possibly a trivial
> issue), and I'd appreciate any information about why R considers
> character vectors to even be comparable to numeric vectors, and why it
> considers characters to have very large values.
>
> Thanks!
>
> Ista
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list