如何避免在 R 中的包装函数中重新列出内部函数参数?
How to avoid re-listing internal function arguments in wrapper function in R?
假设我有一个带有许多参数的函数(例如,plot()
)。
我想通过围绕该函数创建一个包装函数来为该函数添加一些功能。
随机示例:
plot.new <- function() {
windows(width = 10, height = 10)
plot()
}
我的问题:如何才能在我的新包装函数中提供内部函数的参数?
- 如何在定义包装函数时不重新键入内部函数的所有参数名称?
您可以使用 three dots ellipsis
plot.new <- function(...) {
windows(width = 10, height = 10)
plot(...)
}
如果您想在包装函数列表中显式包含任何内部函数参数,您还必须在内部函数中显式定义该参数:
plot.new <- function(x, ...) {
graphics.off() #OPTIONAL
windows(width = 10, height = 10)
plot(x = x, ...)
}
#USAGE
plot.new(x = rnorm(10), y = rnorm(10), pch = 19)
假设我有一个带有许多参数的函数(例如,plot()
)。
我想通过围绕该函数创建一个包装函数来为该函数添加一些功能。
随机示例:
plot.new <- function() { windows(width = 10, height = 10) plot() }
我的问题:如何才能在我的新包装函数中提供内部函数的参数?
- 如何在定义包装函数时不重新键入内部函数的所有参数名称?
您可以使用 three dots ellipsis
plot.new <- function(...) {
windows(width = 10, height = 10)
plot(...)
}
如果您想在包装函数列表中显式包含任何内部函数参数,您还必须在内部函数中显式定义该参数:
plot.new <- function(x, ...) {
graphics.off() #OPTIONAL
windows(width = 10, height = 10)
plot(x = x, ...)
}
#USAGE
plot.new(x = rnorm(10), y = rnorm(10), pch = 19)