gpt4 book ai didi

r - 从外部设置包中函数的默认参数

转载 作者:行者123 更新时间:2023-12-04 11:58:27 28 4
gpt4 key购买 nike

我正在构建一个包含具有默认参数的函数的包。一旦函数被导入,我想找到一种干净的方法来设置默认参数的值。

我的第一次尝试是将默认值设置为未知对象(在包内)。然后,当我加载包时,我会有一个外部脚本为未知对象赋值。

但它看起来不太干净,因为我正在编译一个带有未知对象的函数。

我的问题是我需要其他人来使用这些函数,并且由于他们有很多参数,我希望代码尽可能简洁。许多参数可以在运行程序之前通过配置脚本设置。

因此,例如,我在我的包中定义:

function_try <- function(x = VAL){
return(x)
}

我编译包并加载它,然后我有一个执行(或从配置文件读取)的外部脚本

VAL <- "hello"

然后函数的用户就可以运行

function_try()

最佳答案

我会为此使用选项。所以你的函数看起来像:

function_try <- function(x = getOption("mypackage.default.value")) x

在您的外部脚本中,您确保设置了选项值:

options(mypackage.default.value = "hello")

恕我直言,这是一个干净的解决方案,因为任何阅读您的函数的人都会第一眼看到某个选项值被用作默认值,并且还清楚地了解如何在需要时覆盖该值。

我还会在您的库 onLoad 中定义一个回退值,以确保首先定义该值。然后,您甚至可以在函数中对此回退值使用react,并在函数意识到外部脚本出于某种原因未提供新值时发出有意义的警告。

关于r - 从外部设置包中函数的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57920614/

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