如何解决plot.class_name 和 ggplot.class_name 之间的区别
在开发R包时,为了扩展通用的plot函数,plot.class_name
和ggplot.class_name
有什么区别。
library(ggplot2)
add_values <- function(a,b){
out <- list()
class(out) <- "myclass"
c <- a + b
out$a <- a
out$b <- b
out$c <- c
return(out)
}
plot.myclass <- function(x,...){
cat("Called by plot.")
plot(x$a,x$b)
}
ggplot.myclass <- function(x,...){
cat("Called by ggplot.")
plot(x$b,x$a)
}
a <- seq(0,10,0.01)
b <- a^2
x <- add_values(a,b)
plot(x) # Prints out: Called by plot.
ggplot(x) # Prints out: Called by ggplot.
对于一个简单的测试,它们似乎都可以正常工作。我更喜欢在包内使用 ggplot 。有几个选项:
- 为
plot.myclass
和ggplot.myclass
开发两个单独的方法 - 在
ggplot
中使用plot.myclass
然后plot(object)
将返回 ggplot 结果。 - 在
ggplot
中使用ggplot.myclass
,不支持plot(object)
命令。
CRAN 对使用这些选项是否有任何限制?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。