不构建R包时能否使用Roxygen2生成函数文档
非R包场景下使用roxygen生成函数文档的方法
答案是完全可以。roxygen2官方教程默认围绕R包开发场景讲解,只是因为这是它最主流的使用场景,绝非功能上强制要求必须构建完整R包才能用,你完全可以在普通分析项目里用它给函数生成标准化文档。
可选实现方案
你可以根据自己的项目习惯选以下两种方式,注释写法和R包开发时完全一致,不需要额外调整语法。
方案1:最小伪包结构(操作最简单,零额外学习成本)
你不需要写完整的R包配置、不需要打包安装,只需要搭一个仅满足roxygen运行要求的极简目录结构即可,全程不会触发任何R包构建、检查、安装流程:
- 新建一个临时目录,内部创建两个空的子文件夹:
R/:把你项目中所有写了roxygen注释的函数脚本放进去,不想移动原文件的话直接做软链接/快捷方式也可以man/:作为生成文档的输出目录,留空即可
- 在临时目录的根目录创建一个
DESCRIPTION文本文件,写入最基础的占位内容即可,不需要满足R包校验的完整字段要求:
Package: projectdocs Title: Project Function Documentation Version: 0.0.1 Description: Dummy structure for roxygen doc generation. Authors@R: person("Project", "Owner", role = c("aut", "cre")) License: MIT
- 在R控制台运行命令:
roxygen2::roxygenise("你的临时目录绝对路径")
运行完成后所有函数对应的.Rd格式文档就会生成在man/目录下,你可以直接用R内置的帮助系统查看,也可以自行转成Markdown、HTML等你需要的格式。生成完文档后你可以把临时目录整体保留或者删除,完全不会影响原项目的结构。
方案2:单脚本直接解析(完全不需要类包结构)
如果你连临时目录都不想建,可以直接调用roxygen2的底层解析函数,针对单个/多个R脚本直接生成文档,完全跳过所有R包相关的校验和流程:
library(roxygen2) # 1. 解析你存放函数的目标R脚本 parsed_blocks <- parse_file("你项目里函数脚本的路径/functions.R") # 2. 初始化文档生成处理器,跳过命名空间、包配置等R包专属逻辑 doc_processor <- rd_roclet() generated_docs <- roclet_process( roclet = doc_processor, blocks = parsed_blocks, base_path = "你项目的根目录路径" ) # 3. 将生成的文档输出到你指定的文档存放目录 roclet_output( roclet = doc_processor, results = generated_docs, output_path = "你项目里存放文档的路径/docs" )
注意事项
- 非R包场景下,和R包逻辑强绑定的roxygen标签(比如
@export、@importFrom等)不会产生实际效果,写了也不会触发报错,会被自动忽略,你只需要保留函数说明、参数定义、返回值、示例这类和函数本身相关的标签即可。 - 如果你希望直接把roxygen注释转成Markdown格式的文档而不是R原生的.Rd格式,可以在调用处理器时搭配Markdown输出的roclet,不需要额外做格式转换。
内容的提问来源于stack exchange,提问作者KidLu
相关产品推荐
相关产品推荐

