Bonjour,

Dans le petit manuel de S4 j'ai les deux exemples suivants qui marche bien mais que je ne comprend pas :
1- definition de l'objet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
setClass(
	Class="Trajectoires",
	representation=representation(
		temps = "numeric",
		traj = "matrix"
	)
)
2- methode :print
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
setMethod("print","Trajectoires",
	function(x,...){
		cat("*** Class Trajectoires, method Print ***\n")
		cat("* Temps = ");print(x@temps)
		cat("* Traj = \n");print(x@traj)
		cat("******* Fin Print(trajectoires) ******\n")
	}
)
3- methode :show
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
setMethod("show","Trajectoires",
	function(object){
		cat("*** Class Trajectoires, method Show ***\n")
		cat("* Temps = ");print(object@temps)
		nrowShow <- min(10,nrow(object@traj))
		ncolShow <- min(10,ncol(object@traj))
		cat("* Traj (limité à une matrice 10x10) = \n")
		if(length(object@traj)!=0){
			print(sur l(object@traj[1:nrowShow,1:ncolShow]),
			quote=FALSE)
		}else{}
		cat("* ... ...\n")
		cat("******* Fin Show(trajectoires) ******\n")
	}
)
a) la méthode show s'exécute par défaut, ce qui n'est pas le cas de la méthode print , pourquoi ?

b) dans la méthode print on a : function(x,...), dans la méthode show, on a :function(object) et lorsque je remplace dans la méthode print x par object ça plante mais je ne comprend pas pourquoi .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Erreur dans conformMethod(signature, mnames, fnames, f, fdef, definition) : 
  In method for function "print": formal arguments omitted in the method definition cannot be in the signature (x = "Trajectoires")
J'espère que quelqu'un à quelques lumières à m'apporter sur ce sujet.
Cdt