[R] error:max not meaningful for factors

Jim Lemon jim at bitwrit.com.au
Thu Jul 3 01:17:48 CEST 2014


On Wed, 2 Jul 2014 02:42:31 PM Marta valdes lopez wrote:
> Hello,
> 
> I run this script , because i would like to do the mean of x and y base 
on
> alpha as factor.
> 
> 
> library(xlsx)
> library(ROCR
> filename<-"amanhecer roc.csv"
> rocdata<- read.table(filename, sep=";",header=TRUE,dec=",")
> 
> rocdata$alpha.15_12 <- as.factor(rocdata$alpha.15_12)
> 
> TPaverage <- tapply(rocdata$y.15_12, rocdata$alpha.15_12, mean)
> FPaverage <- tapply(rocdata$x.15_12, rocdata$alpha.15_12, mean)
> 
> ###And them with the new data i want to create a plot, kind of ROC 
plot.
> 
>  Anthias<-rocdata
>  str(Anthias)
> data(ROCR.simple)
> pred <- prediction( ROCR.simple$predictions, ROCR.simple$labels )
> perf <- performance( pred, "tpr", "fpr" )
> windows(width = 9.5, height = 10.50)
> par(mfrow = c(1,1))
> 
> cc<-Anthias[1]
> ee<-Anthias[2]
> aa<-Anthias[3]
> perf at x.name<-"FP"
> perf at y.name<-"TP"
> perf at alpha.name<-"Speed"
> bb<-data.frame(aa)
> perf at x.values<-bb
> dd<-data.frame(cc)
> perf at y.values<-dd
> ff<-data.frame(ee)
> perf at alpha.values<-ff
> 
> plot(perf, main="Teste", colorize=TRUE, 
coloraxis.at=c(0,2,4,6,8,10),
>  coloraxis.cex.axis=0.8, colorize.palette=(rainbow(256,start=0, 
end=0.7)),
> lwd=7, colorkey.relwidth=0.4, yaxis.las=1)
> 
> But after run the whole script i got the error:max not meaningful for
> factors, anyone can help me?  I am a beginner in R ,so sorry if this is
> wasting anyone's time*.*
> 
Hi Marta,
The error message is straightforward. Somewhere in one of the 
functions you have called, the "max" function is applied to your factor 
variable. The definition of factor variables is that the the actual values 
are of nominal class, in which there is no meaningful ordering of 
values, therefore the maximum value is undefined. You could try 
as.numeric(alpha), but that is dangerous as it depends on whether the 
sorting of values (default alphabetic) is what you want. If we knew what 
"alpha" was, it would help.

Jim



More information about the R-help mailing list