0
CRAN策略不允許替換在基本或推薦軟件包中定義的單個方法(用於泛型函數)。他們建議包裝作者替換標準通用並使用xxx.default
方法,然後調用原始標準通用。重新定義繪圖功能中斷的通用情況plot.formula
一個例子從我的包紙如下:
## overwrite standard generic
plot <- function(x, y, ...)
UseMethod("plot")
## per default fall back to standard generic
plot.default <- function(x, y, ...)
graphics::plot(x, y, ...)
## now specify modified plot function for data frames
plot.data.frame <- function(x, variables = names(x), ...)
完整代碼可以在GitHub找到。
對於各種仿製藥,如toLatex
,此方法完美無缺。然而,上述情節方法定義打破標準plot.formula
功能:
library("devtools")
install_github("hofnerb/papeR")
## still works:
example(plot.formula, package="graphics")
### But:
library("papeR")
example(plot.formula, package="graphics")
## Error in eval(expr, envir, enclos) : object 'Ozone' not found
我仍然可以使用
graphics:::plot.formula(Ozone ~ Wind, data = airquality)
雖然。其他繪圖功能可以繼續工作,請參閱
example("plot", package = "graphics")
其他信息
在我NAMESPACE我有
importFrom("graphics", "plot", "plot.default", ...)
export(plot, plot.data.frame, ...)
S3method(plot, default)
S3method(plot, data.frame)
有關此主題(有不同的重點)之前的討論參見here。