gpt4 book ai didi

r - 在 R 中全局打开和关闭调试消息?

转载 作者:行者123 更新时间:2023-12-02 06:33:29 24 4
gpt4 key购买 nike

我在想这样的事情:

> fx = function(x, y) {
+ if (exists("debugging")) {
+ print(x)
+ print(y)
+ }
+ x+y
+ }
> fx(1, 2)
[1] 3
> debugging = 1
> fx(2, 3)
[1] 2
[1] 3
[1] 5

这样你可以写任意多的调试消息,当你想关闭它们时,你只需

rm(debugging)

问题是变量 debugging(或你给它的任何名字)可以随时被任何其他包删除或创建,这是很难控制的。有什么想法吗?

最佳答案

使用一个选项。如果 xyz 是您的包的名称,则典型函数中的调试代码将执行以下操作:

 if (getOption("xyz.debug", FALSE)) { print(x); print(y) }

然后在包外发出这个来开启调试:

 options(xyz.debug = TRUE)

或者这样关闭它:

 options(xyz.debug = FALSE) # or options(xyz.debug = NULL)

另一个包不太可能有一个以您的包名称为前缀的选项名称。

这种方法的主要优点是它不需要任何基础结构,除了 if (...) ... 语句使它非常轻量级,并且在这种情况下使用它的开销调试关闭只是一个 if 和对 getOption 的调用。

关于r - 在 R 中全局打开和关闭调试消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26566619/

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