[Rd] Define replacement functions

soeren.vogel at posteo.ch soeren.vogel at posteo.ch
Mon May 4 14:52:56 CEST 2015


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


More information about the R-devel mailing list