Hi, I would like to know how R assigns the numeric code to a set of factors in a vector. For example, I have a vector of 5 different factors in a random order, and I want a color-coded plot by factors: rfactor=as.factor(sample(letters[1:5], 50, replace=T)) rfactor [1] c c c d b a b d d a a e e b b e c e e a a b b b a b a e a a b d b b c a b b [39] d c a e c d e d a a a a Levels: a b c d e x=rnorm(50) boxplot(x~rfactor, col=1:5) So, colors 1 to 5 are assigned to factors alphabetically (a-1, b-2, ..., e-5), or by order of appearance (c-1, d-2, b-3, a-4, e-5)? It is possible to control that? Saludos, EKS -- Eduardo Klein Lab Sensores Remotos e Instituto de Tecnolog?a y Ciencias Marinas Universidad Sim?n Bol?var Caracas, Venezuela ph (58) (212) 906-3111 ext 6700 fax (58) (212( 906-3111 ext 6701
Rainer Schuermann
2010-Dec-04 01:04 UTC
[R] knowing the code-number of factors in a vector
It seems to be dependent upon the the character ("assigned alphabetically") which I found out by manually changing the order of appearance of the characters in rfactor; the colour would stick to the character "a", whether this appears first in rfactor or not. I as able to control the colours being used by> boxplot(x~rfactor, col=c("2", "6", "3","5","4"))Rgds, Rainer Disclaimer: I'm new to R and very early on the learning curve - just trying my best... On Saturday 04 December 2010 01:22:56 Eduardo Klein wrote:> Hi, > > I would like to know how R assigns the numeric code to a set of factors > in a vector. For example, I have a vector of 5 different factors in a > random order, and I want a color-coded plot by factors: > > rfactor=as.factor(sample(letters[1:5], 50, replace=T)) > rfactor > [1] c c c d b a b d d a a e e b b e c e e a a b b b a b a e a a b d b > b c a b b > [39] d c a e c d e d a a a a > Levels: a b c d e > > x=rnorm(50) > boxplot(x~rfactor, col=1:5) > > So, colors 1 to 5 are assigned to factors alphabetically (a-1, b-2, ..., > e-5), or by order of appearance (c-1, d-2, b-3, a-4, e-5)? It is > possible to control that? > > Saludos, EKS > >
Eduardo Klein <eklein <at> usb.ve> writes:> I would like to know how R assigns the numeric code to a set of factors > in a vector.[snip]>It is indeed alphabetical by default. To get it in order of appearance you could do something like set.seed(1001) x <- sample(letters[1:5],50,replace=TRUE) f <- factor(x,levels=unique(x))