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


R checkRd 檢查 Rd 對象


R語言 checkRd 位於 tools 包(package)。

說明

檢查幫助文件或 parse_Rd 函數的輸出。

用法

checkRd(Rd, defines = .Platform$OS.type, stages = "render",
        unknownOK = TRUE, listOK = TRUE, ..., def_enc = FALSE)

參數

Rd

用作輸入的文件名或 Rd 對象。

defines

⁠#ifdef⁠ 測試中使用的字符串。

stages

⁠\Sexpr⁠ 宏應該在哪個階段( "build""install""render" )執行?請參閱下麵的注釋。

unknownOK

如果 FALSE ,則無法識別的宏被視為錯誤,否則為警告。

listOK

如果 FALSE ,不必要的非空大括號(例如,圍繞文本,不作為參數)將被視為錯誤,否則將被視為警告。

...

Rd 是文件名時傳遞給 parse_Rd 的附加參數。經常有用的一個是 encoding

def_enc

邏輯:包是否聲明了編碼,因此對非 ASCII 文本的測試被抑製?

細節

checkRd 對 Rd 文件執行一致性檢查,確認所需部分是否存在等。

它接受 Rd 文件的文件名,並在應用檢查之前使用 parse_Rd 對其進行解析。如果是這樣,則收集來自 parse_Rd 的警告以及來自內部函數 prepare_Rd 的警告,該函數執行 ⁠#ifdef⁠⁠\Sexpr⁠ 處理,刪除不會渲染或重複(也不應該)的部分並刪除空白部分。

Rd 對象通過 prepare_Rd 傳遞,但它可能已經傳遞(並且已安裝的 Rd 對象已經傳遞)。

警告為 ‘level’:來自 prepare_Rd 的警告級別為 0。其中包括

⁠\Sexpr⁠ 需要 R 代碼;成立 ...
未處理的‘階段’ 宏來自階段-階段⁠\Sexpr⁠
所有文本必須位於一個部分中
隻有一個標簽名允許使用第一個部分:將使用第一個部分
文檔類型類型未被識別
部分名字無法識別並將被丟棄
刪除空部分名字

checkRd本身可以顯示

7 標簽標簽名未能識別
7 無法識別的格式:...
7 ⁠\tabular⁠ 格式必須是簡單文本
7 無法識別的 ⁠\tabular⁠ 格式:...
7 僅有的n該表中允許的列
7 標簽標簽名在 a 中無效區塊名稱堵塞
7 ⁠\method⁠ 在代碼塊之外無效
7 標簽⁠\method⁠僅在⁠\usage⁠中有效
7 標簽⁠\dontrun⁠僅在⁠\examples⁠中有效
7 無效的郵件地址: ...
7 無效的網址: ...
5 ⁠\item⁠區塊名稱必須有非空標簽
3 空部分標簽名
-1未聲明編碼的非 ASCII 內容
-1⁠\enc⁠ 第二部分中的非 ASCII 內容
-1逃脫LaTeX特價:...
-3標簽 ⁠\ldots⁠ 在代碼塊中無效
-3不必要的牙套...
-5⁠\title⁠ 不應以句點結尾

以及 ⁠\method⁠ 替換為 ⁠\S3method⁠⁠\S4method⁠⁠\dontrun⁠ 替換為 ⁠\donttest⁠⁠\dontshow⁠ 以及 ⁠\title⁠ 替換為 ⁠\section⁠⁠\subsection⁠ 名稱的變體。

請注意,prepare_RdcheckRd 都有針對空部分的測試:checkRd 中的測試更嚴格(本質上不輸出任何內容)。

這可能會失敗R錯誤,但否則警告會作為類對象返回"checkRd",消息的字符向量。這個類有一個print隻打印唯一消息並有參數的方法minlevel可用於僅選擇更嚴重的消息。 (這被設置為-1R CMD check.)

可能的致命錯誤來自 !unknownOK!listOK 、無效的 ⁠\if⁠⁠\ifelse⁠ 條件、運行解析器(例如,不存在的文件、未閉合的帶引號的字符串、沒有指定編碼的非 ASCII 輸入) 、⁠\Sexpr⁠ 選項的無效值),或來自 prepare_Rd(多個 ⁠\Rdversion⁠ 聲明、無效的 ⁠\encoding⁠⁠\docType⁠⁠\name⁠ 部分,以及丟失或重複的 ⁠\name⁠⁠\title⁠ 部分),包括從 ⁠\Sexpr⁠ 宏解析/運行代碼產生的錯誤(如果被 stages 覆蓋)。

作者

Duncan Murdoch, Brian Ripley

也可以看看

parse_RdRd2HTML

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Check an Rd Object。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。