Может быть, я думаю о классах R, как если бы они были классами в C или Java, но я не могу изменить значения:
test <- function() {
inc <- function() {
x <- attr( obj, "x" )
x <- x + 1
print(x)
attr( obj, "x" ) <- x
return( obj )
}
obj <- list(inc=inc)
attr( obj, "x" ) <- 1
class(obj) <- c('test')
return( obj )
}
Когда я запускаю это:
> t <- test()
> t <- t$inc()
[1] 2
> t <- t$inc()
[1] 2
Как будто исходный объект класса не может быть изменен.