gpt4 book ai didi

r - 何时使用缺失值与 NULL 值在 R 中传递未定义的函数参数,为什么?

转载 作者:行者123 更新时间:2023-12-04 05:50:50 25 4
gpt4 key购买 nike

迄今为止,在编写 R 函数时,我已经传递了未定义的参数
作为 NULL 值,然后测试它们是否为 NULL,即

f1 <- function (x = NULL) {
if(is.null(x))
...
}

但是,我最近发现将未定义的参数传递为缺失的可能性,即
f2 <- function (x) {
if(missing(x))
...
}

R 文档指出

Currently missing can only be used in the immediate body of the function that defines the argument, not in the body of a nested function or a local call. This may change in the future.



显然,这是使用缺失来确定未定义值的一个缺点,还有其他人或知道吗?或者用更有用的形式来表达这个问题 “你什么时候使用缺失值和 NULL 值在 R 中传递未定义的函数参数,为什么?”

最佳答案

NULL只是您可以分配给变量的另一个值。它与您在函数声明中分配的任何其他默认值没有什么不同。
missing另一方面检查用户是否提供了该参数,您可以这样做 之前 默认赋值——这要归功于 R 的惰性求值,只有在使用该变量时才会发生。

您可以通过此实现的几个示例是:没有默认值的参数,您仍然可以省略 - 例如filetextread.table ,或具有默认值的参数,您只能指定一个 - 例如nnmaxscan .

通过浏览 R 代码,您会发现许多其他用例。

关于r - 何时使用缺失值与 NULL 值在 R 中传递未定义的函数参数,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22024082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com