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


R codoc 检查代码/文档的一致性


R语言 codoc 位于 tools 包(package)。

说明

查找实际和记录的 ‘structure’ 之间的不一致之处R包中的对象。codoc比较函数参数的名称以及可选的相应位置和默认值。codocClassescodocData分别比较 S4 类的槽名称和数据集的变量名称。

用法

codoc(package, dir, lib.loc = NULL,
      use.values = NULL, verbose = getOption("verbose"))
codocClasses(package, lib.loc = NULL)
codocData(package, lib.loc = NULL)

参数

package

命名已安装包的字符串。

dir

指定包根源目录路径的字符串。这必须包含子目录‘男人' 和R文档来源(Rd 格式)和‘R' 和R代码。仅在以下情况下使用package没有给出。

lib.loc

目录名称的字符向量R Library ,或NULL.默认值为NULL对应于当前已知的所有库。指定的库树用于搜索package.

use.values

if FALSE ,在比较代码和文档时不要使用函数默认值。否则,如果 TRUE 则比较所有默认值,否则仅比较用法中记录的值(默认值)。

verbose

一个合乎逻辑的。如果是 TRUE ,则会打印附加诊断信息。

细节

的目的codoc是检查函数对象的记录用法是否与其定义中的形式参数一致R代码。这并不总是简单的,特别是因为泛型函数的方法的使用信息通常使用泛型的名称而不是方法。

使用以下算法。如果使用了已安装的软件包,则会加载该软件包(除非它是base包),在可能分离已加载的包版本之后。否则,如果使用源,则R包的代码文件是在新环境中收集和获取的。然后,“尽可能多”地提取和解析 Rd 文件的使用部分,以提供形式记录。对于代码环境中的解释函数,根据参数的值在代码和文档之间比较形式use.values.

如果包具有命名空间,则会检查导出和未导出的对象以及注册的 S3 方法。 (万一出现差异,顺序是导出包中的对象、注册的 S3 方法,最后是命名空间中的对象,并且仅检查第一个找到的对象。)

目前,R 文档格式没有针对类和数据集的基本 ‘structure’ 的高级标记(类似于函数概要的使用部分)。通过适当编辑 prompt 创建的 ‘templates’ 获得的文档对象中数据帧的变量名称由 codocData 识别并使用,前提是文档对象用于单个数据帧(即只有一个别名)。 codocClasses 类似地处理通过编辑 promptClass 创建的 shell 获得的文档对象中的类的槽名称。

帮助文件名为“软件包名称-已失效.Rd’对于适当的软件包名称检查更宽松,因为它们可能有未记录的参数。

codoc 返回类 "codoc" 的对象。目前,这是一个列表,对于包中发现不一致的每个 Rd 对象,包含一个带有不匹配列表的元素(这些元素又是带有元素 codedocs 的列表,给出相应的参数从函数的代码和记录的用法中获得)。

codocClassescodocData 分别返回类 "codocClasses""codocData" 的对象,其结构类似于类 "codoc"

print 方法可以很好地显示此类对象中包含的信息。

注意

默认为use.values已更改为FALSENULL, 为了R1.9.0 及更高版本。

也可以看看

undoc , QC

相关用法


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