[R] Problem with a non-factor, non-numeric variable in a data.frame

Matthew Keller mckellercran at gmail.com
Tue Nov 6 22:04:26 CET 2007


Alexandre,

Try rereading FAX 7.10, it explains why as.numeric() won't do it:

"In any case, do not call as.numeric() or their likes directly for the
task at hand as as.numeric() or unclass() give the internal codes"

I.e., the INTERNAL CODE of the factor is what as.numeric() is working
on rather than the numeric representation that you see.



On 11/6/07, Alexandre Santos <alexandre.santos at ochipepe.org> wrote:
> I tested
>
> as.numeric(as.character(Ratio))
>
> and it works perfectly!
>
> I still don't get why as.numeric(Ratio) was not enough, but at least
> now I know how to deal with it.
>
> Thanks for the tip, and sorry for missing the R-FAQ issue 7.10.
>
> Cheers,
> Alexandre Santos
>
>
> 2007/11/6, John Kane <jrkrideau at yahoo.ca>:
> > Have a look at the R-FAQ issue 7.10.   It's a standard
> > problem
> >
> > For more information about your variable try
> >
> > str(variable).
> >
> >
> > --- Alexandre Santos <alexandre.santos at ochipepe.org>
> > wrote:
> >
> > > Dear R list,
> > >
> > > I would like to perform an ANOVA in a set of
> > > measurements, but I have
> > > problems formatting the data.
> > >
> > > The data is a two dimensional array containing two
> > > columns:
> > > - "Stim" : the type of stimulation (string)
> > > - "Ratio" : a ratio of two numeric values
> > >
> > > Now, because some values are missing in the data
> > > (defaulting to zero),
> > > part of this array will be populated with NA ratios.
> > > Maybe this is
> > > important later.
> > >
> > > In order to make the ANOVA analysis, I need to turn
> > > my vector into a data.frame.
> > >
> > > I tried vector.table=as.data.frame(vector)
> > >
> > > But I realized that
> > > is.numeric(Ratio) gives FALSE
> > > is.factor(Ratio) gives TRUE
> > >
> > > After reading the documentation, I tried
> > >
> > > vector.table=as.data.frame(vector, stringsAsFactors
> > > = FALSE)
> > >
> > > This time
> > >
> > > is.numeric(Ratio) gives FALSE
> > > is.factor(Ratio) gives FALSE
> > >
> > > So I don't even know what is Ratio, but it's not yet
> > > numeric (is this
> > > due to the NA values?).
> > >
> > > How can I get R to understand that Ratio is numeric?
> > > Checking the
> > > documentation it seems you can do it with I(x), but
> > > the details are
> > > not explained. I also tried as.numeric(Ratio), and
> > > everything was
> > > turned into zeros.
> > >
> > > Any suggestions?
> > >
> > > Cheers,
> > >
> > > Alexandre Santos
> > >
> > > Neuro-MPI, Martinsread, Germany
> > >
> > > ______________________________________________
> > > R-help at 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.
> > >
> >
> >
> >
> >       ____________________________________________________
> > Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now at
> > http://ca.toolbar.yahoo.com.
> >
>
> ______________________________________________
> R-help at 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.
>


-- 
Matthew C Keller
Asst. Professor of Psychology
University of Colorado at Boulder
www.matthewckeller.com



More information about the R-help mailing list