On 03/15/2012 09:51 AM, Alexander wrote:
Hi Martin,
thanks for your quick answer. I didn't know that '.' could be missleading.
Is there any standard way to name function for S4 objects? "get","set"
etc..?

Hi Alexander -- it's usually better to include the original email in the reply, to provide context especially for those joining the thread later.

I think 'get' and 'set' are implicit in the action of the 'getter' fun(x) and 'setter' fun(x) <- value function. I would have written (I wouldn't have used par, which is an existing function unrelated to what you're trying to do).

  setGeneric("parent",
      function(object, ...) standardGeneric("parent'))
  setMethod("parent", "Father", function(object, ...) object@name)

  setGeneric("parent<-",
      function(object, ..., value) standardGeneric("parent<-"))
  setReplaceMethod("parent", c("Father", "Son1"),
      function(object, ..., value)  {
          object@name <- value
          object
      })

and used as

  parent(obj)
  parent(obj) <- son

I realize I'm confused about Father / Son and 'parent' here, maybe you meant something else by 'par'.


I saw your example, and I was wondering, why get.par(ext) put out "Son1",
and not the same as get.par(new("Son1", name="Son1", par=3))

the setIs established a relationship between Extension and Father; you could have established a relationship between Extension and Son1

  setIs("Extension", "Son1", <...>)

and then you would get your expected result. I have to say that I have rarely used setIs, so the complexity of inheritance may hold some surprises, e.g., when there are setIs defined, from Extension to Father, Son1, and Son2.

Martin

If I define a function just like setMethod("get.par", "Father",
function(object) object@name) , for example

setMethod("get.par", "Father", function(object) object@par)

then it would work, for all objects, which are either Son1 or Son2, but not
all object, which are "Father", contains also the variable par

  get.par(new("Father"))

Alexander



--
View this message in context: 
http://r.789695.n4.nabble.com/Extending-a-group-of-S4-classes-by-setClassUnion-tp4475251p4475650.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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.


--
Computational Biology
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109

Location: M1-B861
Telephone: 206 667-2793

______________________________________________
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