No. I fixed that, the NAMESPACE file now contains: S3method("[[<-", mylist) S3method("$<-", mylist)
It still does not work. I also created a print method (print.mylist) which did work out of the box, regardless of being in the NAMESPACE file or not. Could it be somehow in here (also in my NAMESPACE file): exportPattern("^[[:alpha:]]+") Or could it be that the type of quoting causes the problems? Like in the NAMESPACE I used double quotes for function definition. Do I need single quotes or back-ticks? Or is there a package where I can look how others implemented this kind of functionality? Sören > On 04.05.2015, at 16:17, Hadley Wickham <h.wick...@gmail.com> wrote: > > Did you export the S3 methods in the NAMESPACE? > > Hadley > > On Mon, May 4, 2015 at 7:52 AM, <soeren.vo...@posteo.ch> wrote: >> Hello >> >> I tried to define replacement functions for the class "mylist". When I test >> them in an active R session, they work -- however, when I put them into a >> package, they don't. Why and how to fix? >> >> >> make_my_list <- function( x, y ) { >> return(structure(list(x, y, class="mylist"))) >> } >> mylist <- make_my_list(1:4, letters[3:7]) >> mylist >> mylist[['x']] <- 4:6 >> mylist >> "[[<-" <- function(x, field, value) { >> UseMethod('[[<-', x) >> } >> "[[<-.mylist" <- function(x, field, value) { >> stop( "Do not assign." ) >> } >> mylist[['x']] <- 1:10 >> mylist >> mylist$y <- LETTERS[1:3] >> mylist >> "$<-" <- function(x, field, value) { >> UseMethod('$<-', x) >> } >> "$<-.mylist" <- function(x, field, value) { >> stop( "Do not assign." ) >> } >> mylist$y <- LETTERS[10:15] >> >> >> Thanks for help >> Sören >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > > > > -- > http://had.co.nz/ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel