r - 检查用户是否为具有默认值的参数赋值
问题描述
我有一个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
)来做类似的事情。可能吗?
解决方案
您可以使用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
推荐阅读
- python - 用于删除 2D 列表中的重复项的 Python 代码
- r - 如何使用 mse 函数 - babynames 示例
- r - 如何使用 R 中的某些标准将一个值更改为另一个值?
- c# - 如何将 WPF 控件绑定到字典中对象的属性?
- python - 查找值在范围列表中的位置的 Pythonic 方法
- python - 布尔情况
- javascript - 如何替换由本地状态填写的字段并使用 Redux-Form 设置它们?
- animation - Flutter 动画插值
- ansible - 在ansible中,什么时候使用shell vs script模块来运行一个shell脚本
- javascript - 覆盖 jsSocials 链接以执行自定义函数