Hi all, I would like to use an object and to add some definition to the [ function, but I do not manage... My objet is a "trajectories", a matrix whose columne name does contain information : --------- trajectories <- function(traj,varName,time){ colnames(traj) <- paste(varName,time,sep="") class(traj) <- c("trajectories","matrix") return(traj) } x <- trajectories(traj=matrix(1:12,4),varName="T",time=c(1,2,4)) -------------- Then I would like to define the [ operator in the following way : --------------- > x["varName"] [1] "T" > x["time"] [1] 1 2 4 > x[1,] 1 5 9 > x[,1] 1 2 3 4 ---------------- For that, I write: ---------------- "[.trajectories" <- function(traj,slot,...){ if(slot=="varName"){return(gsub("(\\d+)$","",colnames(traj)[1],perl=T))}else{} if(slot=="time"){return(as.numeric(gsub("(^.+\\D)(\\d+$)","\\2",colnames(traj),perl=T)))}else{} NextMethod() } ---------------- The ["varName"],["time"] and [1,] work fine, but not [,1] Any idea of what is wrong and how to correct? Thanks Christophe