I'm currently working on S3-classes trying to generate a write-function for my class. Just a minimal example:
testclass <- function() {
value <- list(c(1,2))
attr(value, "class") <- "testclass"
value
}
print.testclass <- function(obj) {
cat("testtest")
}
summary.testclass <- function(obj) {
cat("testtest2")
}
write.testclass <- function(obj) {
cat("testtest3")
}
##### Testing:
> a <- testclass()
> print(a)
testtest
> a
testtest
> summary(a)
testtest2
> write(a)
Error in file(file, ifelse(append, "a", "w")) :
cannot open the connection
In addition: Warning message:
In file(file, ifelse(append, "a", "w")) :
cannot open file 'data': Permission denied
So, why does the write not use the right write?
Solution:
write <- function(x, ...) UseMethod("write")
write.default <- base::write
write.testclass <- function(obj) {
cat("testtest3")
}
> write(a)
testtest3