ernesto wrote:
>Hi,
>
>I'm writing methods for a package called FLCore (see
>http://flr-project.org/) in particular for a class called
"FLQuant"
>which extends array.
>
>Previously I was able to write methods based on the class of
"data" but
>now I can not do it due to the single parameter "x". Is there a
way to
>do this ?
>
>Regards
>
>EJ
>
>______________________________________________
>R-devel at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
Hi,
I found an hack (see below) to make it work but it's terrible and hugly
... some suggestions are welcome. It simply tests if data belongs to
class "FLQuant" and transforms it into a data.frame before ploting.
Regards
EJ
if (!isGeneric("xyplot")) {
setGeneric("xyplot", useAsDefault = xyplot)
}
setMethod("xyplot", signature("formula"), function(x, ...){
dots <- list(...)
if(class(dots$data)=="FLQuant") dots$data <-
as.data.frame(dots$data)
call.list <- c(x = x, dots)
# needed this to avoid an infinite loop because xyplot is defined only
for "x"
xyplot <- lattice::xyplot
ans <- do.call("xyplot", call.list)
ans$call <- match.call()
ans
})