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. ______________________________________________ R-help@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.