Skip to content

Use of htest class for different tests

3 messages · Gorjanc Gregor, Torsten Hothorn, Martin Maechler

#
Hello!

First of all I must appologize if this has been raised previously, but
search provided by Robert King at the University of Newcastle seems to
be down these days. Additionally let me know if such a question should
be sent to R-help.

I did a contribution to function hwe.hardy in package 'gap' during the
weekend. That functions performs Hardy-Weinberg equilibrium test using
MCMC. The return of the function does not have classical components for
htest class so I was afcourse not successfull in using it. However, I
managed to copy and modify some part of print.htest to accomplish the 
same task.

Now my question is what to do in such cases? Just copy parts of 
print.htest and modify for each test or anything else. Are such cases 
rare? If yes, then mentioned approach is probably the easiest. 

--
Lep pozdrav / With regards,
    Gregor GORJANC

------------------------------------------------------------------------
University of Ljubljana
Biotechnical Faculty       URI: http://www.bfro.uni-lj.si/MR/ggorjan
Zootechnical Department    email: gregor.gorjanc <at> bfro.uni-lj.si
Groblje 3                  tel: +386 (0)1 72 17 861
SI-1230 Domzale            fax: +386 (0)1 72 17 888
Slovenia
#
On Sun, 13 Mar 2005, Gorjanc Gregor wrote:

            
you can use print.htest directly for the components which _are_ elements
of objects of class `htest' and provide your one print method for all
others. If your class `foo' (essentially) extends `htest', a
simple version of `print.foo' could by

print.foo <- function(x, ...) {

   # generate an object of class `htest'
   y <- x
   class(y) <- "htest"
   # maybe modify some thinks like y$method
   ...
   # print y using `print.htest' without copying code
   print(y)

   # and now print additional information
   cat(x$whatsoever)

}
#

        
Torsten> On Sun, 13 Mar 2005, Gorjanc Gregor wrote:
>> Hello!
    >> 
    >> First of all I must appologize if this has been raised
    >> previously, but search provided by Robert King at the
    >> University of Newcastle seems to be down these
    >> days. Additionally let me know if such a question should
    >> be sent to R-help.
    >> 
    >> I did a contribution to function hwe.hardy in package
    >> 'gap' during the weekend. That functions performs
    >> Hardy-Weinberg equilibrium test using MCMC. The return of
    >> the function does not have classical components for htest
    >> class so I was afcourse not successfull in using
    >> it. However, I managed to copy and modify some part of
    >> print.htest to accomplish the same task.
    >> 
    >> Now my question is what to do in such cases? Just copy
    >> parts of print.htest and modify for each test or anything
    >> else. Are such cases rare? If yes, then mentioned
    >> approach is probably the easiest.
    >> 

    Torsten> you can use print.htest directly for the components
    Torsten> which _are_ elements of objects of class `htest'
    Torsten> and provide your one print method for all
    Torsten> others. If your class `foo' (essentially) extends
    Torsten> `htest', a simple version of `print.foo' could by

   Torsten>  print.foo <- function(x, ...) {
   Torsten>  
   Torsten>     # generate an object of class `htest'
   Torsten>     y <- x
   Torsten>     class(y) <- "htest"
   Torsten>     # maybe modify some thinks like y$method
   Torsten>     ...
   Torsten>     # print y using `print.htest' without copying code
   Torsten>     print(y)
   Torsten>  
   Torsten>     # and now print additional information
   Torsten>     cat(x$whatsoever)
   Torsten>  
   Torsten>  }

and if you want to really `comply to standards'
you should end your print method with

    invisible(x)

Martin Maechler, ETH Zurich