r - roxygen2:@noRd 标记在存在 @rdname 标记的情况下对记录内部函数无效
问题描述
我正在使用roxygen2包来记录我的包。正如 Hadley Wickham 在第 7.8 节中所建议的那样,
内部功能应该
#'
像往常一样用注释记录下来。使用@noRd 标记来防止Rd
生成文件。
通常,我在一个 R 文件中有内部函数,因此使用 @rdname 标记。但是,如果我使用 @noRd 标签,它就没有效果。
例如,如果你roxygenize()
这个文件名为“iloveAnimals”,在一个包中:
#' @title Cats
#' @name iloveAnimals
#'
#' @description The following logical functions check if you love animals
#'
#' @param loveCats Logical; TRUE if you love Cats
#' @details
#' loveCats: do you love cats
#' @rdname iloveAnimals
ilovecats <- function(loveCats){
if(loveCats){
print("you love cats")
} else{
print("you hate cats")
}
}
#' @param loveBirds logical; TRUE if you love birds.
#' @details
#' loveBirds: Do you love birds?
#' @rdname iloveAnimals
ilovebirds <- function(loveBirds){
if(loveBirds){
print("you love birds")
} else{
print("you hate birds")
}
}
#' @noRd
产量,在一个包内,
roxygen2::roxygenize()
Writing NAMESPACE
Writing NAMESPACE
Writing iloveAnimals.Rd
这是令人惊讶的,因为该Rd
文件不应该被写入。该Rd
文件的写入就像@noRd 标记无效一样。如果不使用@rdname,则@noRd 标记有效并且Rd
不写入文件。有两个简单的解决方案:
- 注释掉内部函数或
- 每个文件有一个内部函数以避免使用@rdname 标记。
但是,这些解决方案违反了roxygen2的精神。
解决方案
请roxygen2 github 页面获取此问题的答案。谢谢,@gaborcsardi。
https://github.com/r-lib/roxygen2/issues/1141#issuecomment-660612297
推荐阅读
- python - 如何向concurrent.futures ThreadPool executor提交任务并立即返回回复
- java - 如何从 java 程序本身更改域的 IP 地址?
- python - 平均观看 Facebook 分钟数指标
- jolt - 带有数组值的 Jolt Transformation Spec
- c# - Webapis 中的静态类
- javascript - 如何使用在 .then() 之外的 .then() 中设置的 var 的值?
- .net - NSwag Post Build swagger.json 生成失败
- php - Docker Elastic Search - 如何在 windows docker 中设置 vm.max_map_count?
- python - 如何在 python 脚本中将 jenkins 构建标记为不稳定?
- python - 从代码启动进程消费者并获取信号回调