[Rd] col2rgb, factors & documentation

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Jun 10 10:38:25 CEST 2013


On 07/06/2013 18:59, Bryan Hanson wrote:
> Hello Core Folk.

This is the R-devel list.  Bug reports/enhancement suggestions should go 
to bugs.r-project.org.

> Quite by accident I discovered today that col2rgb, when fed factors, acts on the integer representation of those factors:
>
> td <- as.factor(rainbow(5)) # not how I discovered the issue!
> td
> res <- col2rgb(td)
> res
> # but
> col2rgb("#FF0000FF") # this is td[1] but does not produce the same answer
> res[,1]
> # moreover
> as.integer(td)
> col2rgb(5) # the integer value of the first level
> # and this is res[,1] which by the way is palette()[5], aka "cyan"
>
> ?col2rgb says:
> col	
> vector of any of the three kinds of R color specifications, i.e., either a color name (as listed by colors()), a hexadecimal string of the form "#rrggbb" or "#rrggbbaa" (see rgb), or a positive integer i meaning palette()[i]. Non-numeric values are coerced to character.
>
> So in the example the factor is being taken as its integer representation, and finding an integer as the input value, col2rgb goes to palette().
>
> Perhaps this is a nuance that belongs in the documentation?

It has been like that since at least R 2.0.0.  I'll rephrase the help 
and change to coercion to character.


>
> Thanks, Bryan
> ***********
> Bryan Hanson
> Professor of Chemistry & Biochemistry
> DePauw University
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
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



More information about the R-devel mailing list