gpt4 book ai didi

r - "Correct"在 R 函数中指定可选参数的方法

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

我对在 R 中编写带有可选参数的函数的“正确”方法感兴趣。随着时间的推移,我偶然发现了一些采用不同路线的代码,并且我无法找到关于此主题的正确(官方)立场。

到目前为止,我已经编写了如下可选参数:

fooBar <- function(x,y=NULL){
if(!is.null(y)) x <- x+y
return(x)
}
fooBar(3) # 3
fooBar(3,1.5) # 4.5

如果仅x,则该函数仅返回其参数已提供。它使用默认值 NULL第二个参数的值,如果该参数恰好不是 NULL ,然后该函数将这两个数字相加。

或者,可以这样编写函数(其中第二个参数需要通过名称指定,但也可以 unlist(z) 或定义 z <- sum(...) 来代替):

fooBar <- function(x,...){
z <- list(...)
if(!is.null(z$y)) x <- x+z$y
return(x)
}
fooBar(3) # 3
fooBar(3,y=1.5) # 4.5

我个人更喜欢第一个版本。然而,我可以看到两者的好与坏。第一个版本不太容易出错,但第二个版本可用于合并任意数量的选项。

R 中有指定可选参数的“正确”方法吗?到目前为止,我已经选择了第一种方法,但这两种方法有时都会让人感觉有点“hacky”。​​

最佳答案

您还可以使用 missing() 来测试是否提供了参数 y:

fooBar <- function(x,y){
if(missing(y)) {
x
} else {
x + y
}
}

fooBar(3,1.5)
# [1] 4.5
fooBar(3)
# [1] 3

关于r - "Correct"在 R 函数中指定可选参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28370249/

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