gpt4 book ai didi

R 在函数内使用临时选项设置

转载 作者:行者123 更新时间:2023-12-04 11:29:14 24 4
gpt4 key购买 nike

我有一个功能需要我设置一个选项,即 stringsAsFactors=FALSE .我太常见的方法是在函数开始时存储现有值

op <- option("stringsAsFactors")

并在调用之前 return(x)一定要打电话
options(op)

虽然这有效,但它是一个冗长而复杂的函数,可以从多个地方返回,所以我需要确保每个 return(x)前面是 options(op) ,或创建一个仅执行此操作的小函数(本身在我的函数中):
returnfunc <- function(x) {
options(op)
return(x)
}

所以我的问题是:有什么更好的方法可以做到这一点?特别是,可以防止函数因错误退出并保留参数(过度)修改?

最佳答案

有一个内置 on.exit功能正是这样做的。例如

f<-function() {
op <- options(stringsAsFactors=FALSE)
on.exit(options(op))

read.table(...)
}

您可以在 options() 中更改您想要的任何选项调用并将更改之前的所有值作为列表返回,因此很容易重置。你可以传递任何你想要的表达式 on.exit ,在这里我们只是将选项设置回原来的样子。这将在函数退出时运行。见 ?on.exit了解更多信息。

关于R 在函数内使用临时选项设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25215294/

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