[R] as.data.frame(cbind()) transforming numeric to factor?

Tom Boonen tom.boonen.maiden at gmail.com
Fri Aug 18 17:16:45 CEST 2006


Thanks everybody. I recognize my mistake now.

I think as.data.frame(cbind(x.1,x.2),stringsAsFactors = FALSE) would
be a good idea.

Tom

On 8/18/06, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
> On Fri, 18 Aug 2006, Tom Boonen wrote:
>
> > Dear List,
> >
> > why does as.data.frame(cbind()) transform numeric variables to
> > factors, once one of the other variablesused is a character vector?
> >
> > #
> > x.1 <- rnorm(10)
> > x.2 <- c(rep("Test",10))
> > Foo <- as.data.frame(cbind(x.1))
> > is.factor(Foo$x.1)
> >
> > Foo <- as.data.frame(cbind(x.1,x.2))
> > is.factor(Foo$x.1)
> > #
> >
> > I assume there is a good reason for this, can somebody explain? Thanks.
>
> Only if you can explain the good reason why you did not just use
> data.frame(x.1, x.2)!
>
> cbind() makes a matrix out of vectors, here a character matrix.  And then
> as.data.frame() converts character columns to factors.
>
> --
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>



More information about the R-help mailing list