Re: [R] min() return factor class values

From: Peter Dalgaard <P.Dalgaard_at_biostat.ku.dk>
Date: Tue 09 Jan 2007 - 16:03:02 GMT

Milton Cezar Ribeiro wrote:
> Dear Peter,
>
> I tryed something like
>
> >head(especies.aicc)
> especie aicc
> 1 Attila.rufus 17.15934
> 2 Attila.rufus 11.41371
> 3 Attila.rufus 11.41371
> 4 Attila.rufus 19.55998
> 5 Attila.rufus 17.23780
> 6 Attila.rufus 19.22545
>
> > especies.min<-aggregate.data.frame(especies.aicc,list
> (Especie=especies.aicc$especie),max)
>
Make sure to aggregate only the part of your data frame that is numeric:

> x <- read.table(stdin())

0: especie aicc

  1. 1 Attila.rufus 17.15934
  2. 2 Attila.rufus 11.41371
  3. 3 Attila.rufus 11.41371
  4. 4 Attila.rufus 19.55998
  5. 5 Attila.rufus 17.23780
  6. 6 Attila.rufus 19.22545

7:

> aggregate(x[2], list(x$especie), min)

       Group.1 aicc

1 Attila.rufus 11.41371

> aggregate(x[2], list(x$especie), max)

       Group.1 aicc

1 Attila.rufus 19.55998

> aggregate(x, list(x$especie), max) # this breaks

Error in Summary.factor(..., na.rm = na.rm) :

        max not meaningful for factors

>
> But it works fine only for "mean" FUN and not for "min" and "max". Also also, when I use "mean" I got the following warnings:
>
> > especies.min<-aggregate.data.frame(especies.aicc,list
> (Especie=especies.aicc$especie),mean)

>

> Warning messages:
> 1: argument is not numeric or logical: returning NA in: mean.default(X[[1]], ...)
> 2: argument is not numeric or logical: returning NA in: mean.default(X[[2]], ...)
>
> In fact I need only min() and max().
>
> Miltinho
> -----------------
>

> Peter Dalgaard <P.Dalgaard@biostat.ku.dk> escreveu:
> Milton Cezar Ribeiro wrote:
>
>> Hi R-friends
>>
>> I don´t know why the "min()" function below return the min value as factor. When i force the aicc.min using a as.numeric() function, it return a factor index (1,2,..) and not min value as I want. By the way, I included a sessionInfo() at the end of this e-mail.
>>
>>     

> min() is not doing anything out of the ordinary, but cbind'ing it with
> the character vector sp coerces it to character and rbind'ing to a data
> frame turns character vectors into factors...
>

> The whole thing looks like it could be a straightforward application of
> aggregate().
>
>> In fact I had the same problem (values as factor) on other part of my script and I noticed that it occour when I use "cbind()". It is real?
>>
>> Any idea? 
>>
>> Kind regards,
>>
>> Miltinho
>>
>>     
>>> especies.aicc.min<-data.frame()
>>>       
>>> for (sp in levels(especies.aicc$especie)) 
>>>
>>>       
>> + {
>> + sele<-subset(especies.aicc,especie==sp)
>> + especies.aicc.min<-rbind(especies.aicc.min,cbind(sp,aicc.min=min(sele$aicc)))
>> + }
>>
>>     
>>> especies.aicc.min
>>>
>>>       
>> sp aicc.min
>> 1 Attila.rufus 6.7387056413613
>> 2 Automolus.leucophthalmus 125.791300522824
>>
>>     
>>> class(especies.aicc.min$aicc.min)
>>>
>>>       
>> [1] "factor"
>>
>> -----------
>>     
>>> sessionInfo()
>>>       
>> R version 2.4.0 (2006-10-03) 
>> i386-pc-mingw32 
>> locale:
>> LC_COLLATE=English_Jamaica.1252;LC_CTYPE=English_Jamaica.1252;LC_MONETARY=English_Jamaica.1252;LC_NUMERIC=C;LC_TIME=English_Jamaica.1252
>> attached base packages:
>> [1] "methods" "stats" "graphics" "grDevices" "utils" "datasets" "base" 
>>
>>
>>
>>     
>
>

>
-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)                  FAX: (+45) 35327907

______________________________________________
R-help@stat.math.ethz.ch 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.
Received on Wed Jan 10 12:40:29 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Wed 10 Jan 2007 - 02:30:25 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.