我有一个函数f(x)
,其中x
的默认值为2。该函数返回平方。
f <- function(x = 2){
return(x^2)
}
我想检查功能是否用户给x
赋值。即使给定的值为2,我也想知道。
也许这就是我想要的等效代码。
f <- function(x){
if(!missing(x)) print("User did not give value to x")
if(missing(x)) x <- 2
return(x^2)
}
我想通过将x的默认值设置为2(也不是NULL
)来做类似的事情。有可能吗?
答案 0 :(得分:2)
您可以使用match.call
。在这种情况下,我们可以做到
f <- function(x = 2) {
if(is.null(match.call()$x))
print("Nothing")
x^2
}
f()
# [1] "Nothing"
# [1] 4
f(2)
# [1] 4
f(x = 2)
# [1] 4