如何为环境中的函数a编写文档以支持?envir$a查询?
为环境中的函数添加可通过
?envir$a调用的文档 有两种可行方案,可根据使用场景选择:
方案一:临时环境快速实现(无需包开发)
直接给函数添加自定义帮助属性,再重载help的函数方法来识别该属性:
# 创建环境并定义函数 envir = environment() envir$a = function(x) x + 1 # 给函数添加帮助文本属性 attr(envir$a, "custom_help") = ' a(x) Description: 将输入值加1的简单函数 Arguments: x: 数值型输入参数 Value: 返回 x + 1 的结果 ' # 自定义help函数的S3方法,识别我们添加的帮助属性 help.function = function(topic, ...) { if (!is.null(attr(topic, "custom_help"))) { cat(attr(topic, "custom_help"), "\n") } else { # 如果没有自定义属性,调用默认的help逻辑 utils::help.function(topic, ...) } }
现在调用?envir$a,就能看到你定义的帮助内容。
方案二:规范的包级实现(适合长期维护)
如果这个函数属于你的R包,推荐用roxygen2生成标准Rd文档:
- 将函数放在包的命名空间环境中,或把自定义环境注册为包的环境
- 用roxygen2风格注释编写文档:
#' 将输入值加1 #' #' 接受一个数值输入,返回该值加1的结果 #' @param x 数值型输入参数 #' @return 数值,等于x + 1 #' @export a = function(x) x + 1
- 运行
devtools::document()生成Rd文档 - 若将函数放入包环境,调用
?pkgname::a即可;若自定义环境已注册为包的命名空间,?envir$a也能直接生效。
额外提示:对于独立自定义环境,可通过tools::addHelp(envir)将其加入R的帮助搜索路径,让help函数能自动识别环境内的函数文档。
内容的提问来源于stack exchange,提问作者daniellga
相关产品推荐
相关产品推荐

