On 05/21/2018 12:06 AM, Glenn Schultz wrote:
All,

I am considering creating an S4 class whose slots (2) are both S4 classes.  Since an S4 slot can be an S3 class I figure this can be done.  However, the correct syntax of which I am unsure.  Reviewing the docs I have come to the following conclusion:

SetClass('myfoo',
                   slots = (foo1, foo2))

Without a type I believe each slot is .Data.  A get method on the above class slots would return say foo1 which will have all methods and generics belonging to foo1 class.  Is this the correct approach?

Suppose you have two classes

  .A = setClass("A", slots = c(x = "numeric"))
  .B = setClass("B", slots = c(y = "numeric", z = "numeric"))

A third class containing these would be

  .C = setClass("C", slots = c(a = "A", b = "B"))

where names of the slot argument are the slot names, and the character strings "A", "B" are the type of object the slot will store.

> .C()
An object of class "C"
Slot "a":
An object of class "A"
Slot "x":
numeric(0)


Slot "b":
An object of class "B"
Slot "y":
numeric(0)

Slot "z":
numeric(0)


> .C(a = .A(x = 1:2), b = .B(y = 2:1, z = 1:2))
An object of class "C"
Slot "a":
An object of class "A"
Slot "x":
[1] 1 2


Slot "b":
An object of class "B"
Slot "y":
[1] 2 1

Slot "z":
[1] 1 2



Martin Morgan


Best,
Glenn
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


This email message may contain legally privileged and/or...{{dropped:2}}

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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