[R] Colors vector based on group

Rui Barradas ruipbarradas at sapo.pt
Mon Feb 6 16:47:08 CET 2012


Hello,

> I have a vector like this:
> 
> x =
> c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2)
> 
> I would like to associate a colour to each of these entry. For example, I
> could use topo.colors(3) (since I have 3 groups).
> 
> I know it is easy to do this with  if/else statements, but I would like to
> find a proper way to do this.

Easy, after knowing how many colors are there, just use 'x' as an index
vector:

ncolrs <- length(unique(x))
colrs  <- topo.colors(ncolrs)
xcolrs <- colrs[x]

Or, in one instruction,

xcolrs2 <- topo.colors(length(unique(x)))[x]
all.equal(xcolrs, xcolrs2)

Hope this helps,

Rui Barradas


--
View this message in context: http://r.789695.n4.nabble.com/Colors-vector-based-on-group-tp4361425p4361662.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list