[R] add factor to dataframe given ranges

Marc Schwartz (via MN) mschwartz at mn.rr.com
Thu Dec 22 17:13:58 CET 2005


On Thu, 2005-12-22 at 10:08 -0600, Marc Schwartz (via MN) wrote:
> On Thu, 2005-12-22 at 16:58 +0100, Albert Vilella wrote:
> > Hi all,
> > 
> > I would like to factorize the entries in a dataframe given some
> > groupings. E.g:
> > 
> > mydf = data.frame(
> >   a = rnorm(100,10),
> >   b = rnorm(100,10),
> >   c = rgamma(100, 1, scale=1))
> > 
> > group = hist(mydf$c, breaks="FD")
> > group$breaks
> > 
> > The idea is to create a factor "mydf$d" with levels corresponding to
> > the ranges in group$breaks.
> > 
> > There must be an easy way to do this that I haven't found out.
> > 
> > Thanks in advance,
> > 
> >     Albert.
> 
> See ?cut
> 
> Then:
> 
>  myfac.c <- cut(mydf$c, breaks = group$breaks)


One quick update here which is more clearly based upon your comment
above:

   mydf$d <- cut(mydf$c, breaks = group$breaks)

Which will add the resultant factor as a new column 'd' to your existing
mydf.

Marc




More information about the R-help mailing list