是否可以在运行时更改 R 函数中形式参数的默认值?
假设,我们有函数
f <- function(x=1) {
...
}
我可以以某种方式将 x 的默认值从 1 更改为 2 吗?
在此先感谢,
斯文
是否可以在运行时更改 R 函数中形式参数的默认值?
假设,我们有函数
f <- function(x=1) {
...
}
我可以以某种方式将 x 的默认值从 1 更改为 2 吗?
在此先感谢,
斯文
另一种方法(显示在不同的SO 帖子中)是使用该formals
功能,例如:
formals(f) <- 2
由于CRAN 不再提供Defaults包,因此您可以使用default。
举个例子:
x <- list(a = 1, b = 2, c = 3)
default::default(unlist) <- list(use.names = FALSE)
unlist(x)
#> [1] 1 2 3
unlist <- default::reset_default(unlist)
unlist(x)
#> a b c
#> 1 2 3
由reprex 包(v0.2.0.9000)于 2019 年 3 月 22 日创建。
我尝试为packagefinder
具有fp()
指向别名的库执行相同的参数包装findPackage()
。我尝试了各种方法,包括 using formals()
,但最后,唯一对我有用的是以下 3 个变体:
#--------------------------------------
# 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
其他相关帖子: