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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。