2009-09-21 90 views
80

有時在R幫助頁面上,短語「不運行」出現在註釋中。查看幫助頁面中的「with()」:R幫助頁面中的「不運行」是什麼意思?

Examples 
require(stats); require(graphics) 
#examples from glm: 
**## Not run:** 
library(MASS) 
with(anorexia, { 
    anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt), 
        family = gaussian) 
    summary(anorex.1) 
}) 
## End(**Not run**) 

示例代碼中的「not run」是什麼意思?

+22

只是一個相關的提示。您可以通過發出「example(glm)」運行示例代碼。 – 2009-09-21 16:10:39

+2

這是一個很好的提示。我敢打賭絕大多數R用戶並不知道它。 – 2009-09-21 17:54:56

+0

但注意示例(fn)仍然不會包裝在'dontRun'中的示例代碼 – tim 2015-08-27 11:03:32

回答

58

「未運行」包含不應在example函數中執行的代碼(例如,耗時的代碼部分,用戶交互...)。

參見例如?example

由於在手動寫作R附加詳細的 筆者的幫助頁面可以標記的例子部分有兩個例外 規則

  • 「dontrun」封閉的代碼,不應該被運行。

  • 'dontshow'包含在幫助頁面上不可見的代碼,但 將由包檢查工具和 'example()'函數運行。這是以前的'純粹',並且這種形式仍然被接受。

+3

...我怎麼不知道這個函數? – 2009-09-21 14:41:16

+3

這不僅僅是耗時的代碼,通常放在\ dontrun {}中。需要用戶輸入的代碼需要在dontrun內部,否則將不會通過'R CMD檢查' – Dason 2012-10-11 23:03:44

+1

或者:取決於用戶機器上可能未安裝的程序包的代碼。有很多很多原因可以使用\ dontrun {} – Jason 2016-09-12 06:45:55

22

"Writing R Extensions"手冊,在大約\實例{...}說,

您可以使用\ dontrun {}文本應該只被顯示,但無法運行,而第\ dontshow {}對於不應被顯示給用戶,但將通過實例()來運行測試額外的命令

當你構建一個包,然後在\ dontrun所有代碼{}閉包是在幫助爲可見

## Not run: 
... 
## End(**Not run**) 

編輯:This answer較早。

4

Ç&弗里德里希Leisch從MUST-TO-READ Creating R Packages: A Tutorial的第5.4章(R文檔文件)P:

實施例部分應包含 可執行R代碼裏面,並自動 運行的代碼是部分檢查 一個包。存在用於實施例的兩個特殊 標記命令:

dontrun:\ dontrun內一切{} 不被測試或 例如()執行。這對於例如 交互功能, 訪問互聯網等是有用的。不要 通過給出不能被 執行的例子來錯誤地使你的生活變得容易 。

10

This add \donttest{} and taken(verbatim)from @ hadley's R Packages

但是出於說明的目的,包含導致錯誤的代碼通常是有用的。 \dontrun{}允許您在未使用的示例中包含代碼。還有兩個特殊的命令。 \dontshow{}已運行,但未在幫助頁面中顯示:這對非正式測試非常有用。 \donttest{}在示例中運行,但不會在R CMD檢查中自動運行。如果您有需要很長時間才能運行的示例,這非常有用。這些選項總結如下。

Command  example help  R CMD check 
\dontrun{}     x 
\dontshow{}  x       x 
\donttest{}  x  x 
+1

請注意,donttest現在已經過測試 – 2015-01-28 00:40:01

+0

對於包提交,您是否必須在.Rd中提供任何其他註釋來證明遺漏代碼塊?我有一個包失敗檢查,因爲有一個\ donttest {}例子,我想知道它是否是一個簡單的改變爲\ dontrun {}。該功能用於從ftp下載數據,而CRAN註釋是:「在.Rd文件中沒有對此進行註釋。請注意,example()將運行這些部分」。 – 2015-01-30 14:48:09

+0

是的,它應該是那麼簡單。 – 2015-01-30 15:19:41