當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。