Your recommendations have worked great. I have found both cut and ifelse to be useful.
I have one more question. When should I use factors over a character vector. I know that they have different uses. However, I am still trying to figure out how I can best take advantage of factors. The following is what I am really trying to do: colors <- c("red","blue","green","black") y.col <- colors[cut(y,c(-Inf,250,500,700,Inf),right=F,lab=F)] plot(x,y,col=y.col) Would using factors make this any cleaner? I think a character vector is all I need but I thought I would ask. Thanks for your help, Arend van der Veen On Tue, 2003-12-02 at 00:32, Gabor Grothendieck wrote: > And one other thing. Are you sure you want character variables > as the result of all this? A column whose entries are each one > of four colors seems like a good job for a factor: > > colours <- c("red", "blue", "green","black") > cut(x, c(-Inf,250,500,700,Inf),right=F,lab=colours) > > > > --- > Date: Mon, 1 Dec 2003 23:47:39 -0500 (EST) > From: Gabor Grothendieck <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]> > Cc: <[EMAIL PROTECTED]> > Subject: Re: [R] Vector Assignments > > > > > > Just some small refinements/corrections: > > colours <- c("red", "blue", "green","back") > colours[cut(x, c(-Inf,250,500,700,Inf),right=F,lab=F)] > > --- > Date: Tue, 02 Dec 2003 14:38:55 +1300 > From: Hadley Wickham <[EMAIL PROTECTED]> > To: Arend P. van der Veen <[EMAIL PROTECTED]> > Cc: R HELP <[EMAIL PROTECTED]> > Subject: Re: [R] Vector Assignments > > > > One way would be to create a vector of colours and then cut() to index > the vector: > > colours <- c("red", "blue", "green","back") > colours[cut(x, c(min(x),250,500,700,max(x)),lab=F)] > > Hadley > > > Arend P. van der Veen wrote: > > >Hi, > > > >I have simple R question. > > > >I have a vector x that contains real numbers. I would like to create > >another vector col that is the same length of x such that: > > > >if x[i] < 250 then col[i] = "red" > >else if x[i] < 500 then col[i] = "blue" > >else if x[i] < 750 then col[i] = "green" > >else col[i] = "black" for all i > > > >I am convinced that there is probably a very efficient way to do this in > >R but I am not able to figure it out. Any help would be greatly > >appreciated. > > > >Thanks in advance, > >Arend van der Veen > > > > > _______________________________________________ > No banners. No pop-ups. No kidding. > Introducing My Way - http://www.myway.com > ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help