[R] min() return factor class values

Benilton Carvalho bcarvalh at jhsph.edu
Tue Jan 9 18:09:52 CET 2007


Milton,

have you looked at the structure of your data.frame?

str(especies.aicc)

Are you sure especies.aicc is defined as numeric?

b

On Jan 9, 2007, at 10:51 AM, 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)
>
>   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 at 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 at biostat.ku.dk) FAX: (+45) 35327907
>
>
>
>
>  __________________________________________________
>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list