当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R bug.report 发送错误报告


R语言 bug.report 位于 utils 包(package)。

说明

调用编辑器或电子邮件程序来编写错误报告或打开网页以提交错误。有关当前版本和配置的一些标准信息R自动包含在内。

用法

bug.report(subject = "",  address,
           file = "R.bug.report", package = NULL, lib.loc = NULL,
           ...)

参数

subject

电子邮件的主题。

address

收件人的电子邮件地址(如果适用):对于通过电子邮件发送的软件包错误报告,默认为软件包维护者的地址(如果列出多个,则为第一个)。

file

用于设置电子邮件的文件名(如果需要)。

package

可选字符向量命名单个包,这是错误报告的主题。

lib.loc

说明位置的特征向量R在其中搜索包的库树,或者NULL。默认值为NULL对应于当前已知的所有库。

...

其他命名参数,例如 methodccaddress 传递给 create.post

细节

如果 packageNULL 或基础包,这将在 https://bugs.r-project.org/ 处打开 R 错误跟踪器。

如果package已指定,则假定错误报告与该包及其部分‘DESCRIPTION’文件被添加到标准信息中。如果包有一个非空的BugReports字段中的‘DESCRIPTION' 指定网页 URL 的文件,该 URL 将使用以下命令打开browseURL,否则将使用以下命令生成一封发送给软件包维护者的电子邮件create.post。如果还有其他形式的话BugReports场或Contact字段,这会被检查,因为它可能提供首选电子邮件地址。

没什么用处。

什么时候有bug?

如果R执行非法指令,或者因操作系统错误消息而死亡,表明程序中存在问题(而不是类似“disk full”),那么它肯定是一个错误。

花费很长时间才能完成命令可能是一个错误,但您必须确保它确实是R的错。有些命令只是需要很长时间。如果您知道输入应该被快速处理,请报告错误。如果您不知道该命令是否需要花费很长时间,请查看手册或寻求帮助来找出答案。

如果您熟悉的命令导致R如果错误消息的通常定义应该是合理的,那么它可能是一个错误。如果一个命令做了错误的事情,那就是一个错误。但请确保您确切地知道它应该做什么。如果您不熟悉该命令,或者不确定该命令应该如何工作,那么它实际上可能工作正常。与其急于下结论,不如向确切知道问题的人展示问题。

最后,命令的预期定义可能不适合统计分析。这是一个非常重要的问题,但也是一个判断问题。而且,由于对某些现有特征的无知,很容易得出这样的结论。最好不要抱怨这样的问题,直到您以通常的方式检查了文档,确信自己理解了它,并且确定您想要的东西不可用。邮件列表 r-devel@r-project.org 是比错误列表更好的讨论此类讨论的地方。

如果您在仔细阅读手册后不确定该命令的用途,则表明手册中存在错误。手册的作用是让一切变得清晰。报告文档错误与报告程序错误同样重要。

如果函数的在线参数列表与手册不符,则其中之一一定是错误的,因此请报告该错误。

如何报告错误

当您确定存在错误时,重要的是要报告它并以有用的方式报告它。最有用的是从您开始时输入的命令的准确说明R直到问题发生。始终包含以下版本R您正在使用的、机器和操作系统;类型版本R打印这个。为了帮助我们跟踪哪些错误已被修复以及哪些错误仍然存在,请为每个错误发送单独的报告。

报告错误最重要的原则是报告事实,而不是假设或分类。报告事实总是更容易,但人们似乎更愿意费力地提出解释并报告它们。如果解释是基于对如何进行的猜测R实施了,就没用了;我们必须设法弄清楚到底是什么事实导致了这种猜测。有时这是不可能的。但无论如何,这对我们来说都是不必要的工作。

例如,假设在您知道相当大的数据集上,命令 data.frame(x, y, z, monday, tuesday) 永远不会返回。不要报告 data.frame() 对于大型数据集失败。当变量名称是一周中的某一天时,它可能会失败。如果是这样,那么当我们收到您的报告时,我们会在大型数据集上尝试 data.frame() 命令,可能没有星期几变量名称,并且不会发现任何问题。我们不可能猜测我们应该尝试一周中的某一天变量名称。

或者该命令可能会失败,因为您使用的最后一个命令是[有错误导致的方法R的内部数据结构被破坏并使得data.frame()命令从此失败。这就是为什么我们需要知道您输入了哪些其他命令(或从启动文件中读取)。

尝试找到产生明显相同错误的简单示例非常有用,而找到可能会产生错误但实际上不会产生错误的简单示例也有些有用。如果您想调试问题并准确找出导致问题的原因,那就太好了。您仍然应该报告事实以及任何解释或解决方案。

调用R - 香草选项可能有助于隔离错误。这可确保不会读取站点配置文件和保存的数据文件。

可以使用该函数生成错误报告bug.report()。对于报告R这将打开网页https://bugs.r-project.org/:对于贡献的软件包,它将打开该软件包的错误跟踪器网页或帮助您撰写给维护者的电子邮件。

有关贡献包的错误报告不应发送到 R 错误跟踪器:而是使用 package 参数。

作者

This help page is adapted from the Emacs manual and the R FAQ

也可以看看

help.request 您可能应该在 bug.report 之前尝试。

create.post ,处理电子邮件报告。

R 常见问题解答,还有sessionInfo(),您可以从中添加到错误报告中。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Send a Bug Report。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。