Si vous créez une fonction S4 générique vous devriez pouvoir définir une signature acceptable pour les arguments de méthode à "ANY". Je ne suis pas sûr si la représentation pourrait être réglée sur "ANY" puisque la façon dont je pense aux représentations est plus spécifique que cela. Les arguments qui n'ont pas de signatures affectées sont enregistrés avec la classe "ANY". Vous pouvez utiliser le type « vecteur » comme représentation qui peut accepter des listes ou des objets atomiques:
setClass("myClass", representation(A="vector"))
[1] "myClass"
> new("myClass", A=list(a=c(2,3,4), b="a") )
An object of class "myClass"
Slot "A":
$a
[1] 2 3 4
$b
[1] "a"
Je ne suis pas sûr que ce soit aussi général que vous avez demandé, mais vous ne dites rien besoin des attributs aussi bien . Je pensais que vecteur pourrait perdre les attributs, mais il ne semble pas:
> setClass("myClass", representation(A="vector"))
[1] "myClass"
> new("myClass", A=B )
An object of class "myClass"
Slot "A":
$a
[1] 2 3 4
$b
[1] "a"
attr(,"myattr")
[1] "test"