Hi,

I am having problem to override setClass  and setMethod in a package

Requirement: R 3.0.1, Rtools

Please find below the steps to recreate the problem:
*
*
*#1. Create class and method*

*setClass(Class="AAA",*
*           representation(*
*           name="character",*
*   val="numeric"*
*         )*
*)*

*setMethod("*", *
*  signature(e1 = "numeric", e2 = "AAA"), *
*  definition=function (e1, e2) {*
*     e2@val = e2@val * e1*
* e2       *
* }*
*)*

*# 2/ save the file in *
C:\\AAA.r

*# 3/  build a package*
*>  setwd("C:")*
*>  package.skeleton(name="AAA",code_files="C:\\AAA.r")
*
*>  system("R CMD build AAA")*
*>  system("R CMD INSTALL --build AAA")*

*#4/ testing*
*> library(AAA)*
*> x = new("AAA")*
*> x@val = 100*
*> -1 * x*
*An object of class "AAA"*
*Slot "name":*
*character(0)*
*
*
*Slot "val":*
*[1] -100*
*
*
*Slot "type":*
*character(0)*

*#5/ override class and  method*

*setClass(Class="AAA",*
*           representation(*
*           name="character",*
*   val="numeric",*
*   type="character",*
*   desc="character"*
*         )*
*)*
*
*
*setMethod("*",
*
*     signature(e1 = "numeric", e2 = "AAA"), *
*  definition=function (e1, e2) {*
* if (e2@type == "double"){*
* e2@val = e2@val * (2 * e1)       *
* } else {*
* e2@val = e2@val * e1 *
* }*
*  }*
* )*
*
*
*#6/ testing*
*> y = new("AAA")*
*> y@val=25*
*> y@type="double"*
*> -1 * y*
*Error in -1 * y : invalid object (non-function) used as method*


Please advise

-- 
-- Andy --

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org 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.

Reply via email to