在R中,是否有可能在运行时更改函数的形式参数的默认值?
假设我们有以下函数:
f <- function(x=1) {
...
}
我能否以某种方式将x的默认值从1更改为例如2?
提前致谢,
Sven
在R中,是否有可能在运行时更改函数的形式参数的默认值?
假设我们有以下函数:
f <- function(x=1) {
...
}
我能否以某种方式将x的默认值从1更改为例如2?
提前致谢,
Sven
formals(f) = pairlist(x=1)
- Sven Hageralist
而不是list
或pairlist
。 - Joshua Ulrichpaste
这样广泛使用的支持函数时要小心。您可能会破坏一些难以诊断的内容。 - Joshua UlrichDefaults
已经不再从 CRAN 上提供了。您仍然可以使用 formals
函数来完成此操作,请参见:https://dev59.com/FWLVa4cB1Zd3GeqPsQaY#9895903 - Jake Fisher我尝试对packagefinder
库进行相同的参数包装,该库有一个别名fp()
指向findPackage()
。我尝试了各种方法,包括使用formals()
,但最终对我有效的只有以下三个变体:
#--------------------------------------
# packagefinder
#--------------------------------------
# fp = findPackage
# Set default to use:
# fp(... , display = "console", return.df = TRUE)
#--------------------------------------
fp <- function(...) {
packagefinder::fp(..., display="console", return.df=TRUE)
}
fp <- function(...) invisible(findPackage(..., display="console", return.df=TRUE))
fp <- function(..., display="console", return.df=TRUE) packagefinder::fp(...,display=display, return.df=return.df)
我无法让 formals() 方法正常工作。
# Fail-1
formals(fp) <- alist(... = , display="console", return.df=TRUE)
# Fail-2
MY_ARGS <- list(display="console", return.df=TRUE)
formals(fp)[names(MY_ARGS)] <- MY_ARGS
以下是与此相关的其他帖子: