gpt4 book ai didi

r - 在 R 包开发中什么时候和什么时候不使用\donttest 和\dontrun?

转载 作者:行者123 更新时间:2023-12-02 16:07:40 28 4
gpt4 key购买 nike

所以我正在将我的包提交给 CRAN,我对何时将示例包装在 \donttest\dontrun 中感到困惑。我有几个不同的案例:

  1. 返回数据框等的例子
  2. 返回通过 ggplot2 生成的静态图形的示例
  3. 返回通过 plotly 生成的 JavaScript 图形的示例
  4. 读取或写入文件系统的示例(例如导入数据和编写电子表格)
  5. 运行 Shiny 应用程序的示例

我已经解决了 (1) 我不应该包装在 \donttest\dontrun 中的问题。对于 (5),我应该将整个函数包装在 if(interactive()){} 中。

还有第 2-5 种情况,我不确定是否应该将这些示例包装好或拆开。我猜情节还可以,但不确定读取/写入文件。非常感谢任何提示或将我带到明确解释的地方。谢谢。

最佳答案

一般来说,除非您需要,否则您应该避免使用这些标记。如果示例执行的操作可能会失败,您将需要其中之一,因为 CRAN 会将失败视为您的包中的错误。如果他们做了一些危险的事情(例如,在用户的主目录中创建文件,删除您创建的临时文件以外的文件,发送电子邮件等),您也会使用它们

\dontrun 标记更强。在过去,包含在其中的示例甚至不需要在语法上是正确的,尽管我认为这可能已经改变了。如果用户运行 example() 函数,他们将不会运行该代码。

对运行时间过长且违反 CRAN 的 5 秒限制的示例使用 \donttest。运行 example() 的用户将运行这些,但您的包的基本测试不会。有时 CRAN 会测试 \donttest 代码,所以它必须工作。 (一般来说,如果可以的话,最好给出运行速度快且不超过 5 秒限制的示例。)

对于您的特定示例,只要它们足够快,就不需要任何包装,您可以安排所有文件系统更改都发生在 R session 临时目录中。

关于r - 在 R 包开发中什么时候和什么时候不使用\donttest 和\dontrun?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68935126/

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