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
2- methode :print
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" ) )
3- methode :show
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") } )
a) la méthode show s'exécute par défaut, ce qui n'est pas le cas de la méthode print , pourquoi ?
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") } )
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 .
J'espère que quelqu'un à quelques lumières à m'apporter sur ce sujet.
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")
Cdt
Partager