gpt4 book ai didi

R 包构建未记录的代码对象

转载 作者:行者123 更新时间:2023-12-02 09:59:26 25 4
gpt4 key购买 nike

我编写了一个用于与电子病历集成的 R 包。我认为我已经在描述文件中正确添加了导入和依赖项,并通过 roxygen2 记录了所有内容,但是在我的三个函数(都在同一个文件中)上,当我运行 devtools::check("."时,我收到此警告。 ):

* checking for missing documentation entries ... WARNING
Undocumented code objects:
'add_to_database' 'database' 'import_CPRD_data'
All user-level objects in a package should have documentation entries.

我认为我已经以与所有其他功能相同的方式记录了这些功能,这些功能都很好。这是 roxygen2 文档中的一个有问题的函数:

#' Wrapper for dbconnect
#'
#' Connects to a SQLite database or creates one if it does not already exist
#'
#' If the '.sqlite' file extension is ommited from the dbname argument it is automatically added.
#'
#' @export
#'
#' @param dbname character name path to database file
#' @return SQLiteConnection object
#' @examples \dontrun{
#' db <- database("mydb")
#' }
database <- function(dbname){
if(!str_detect(dbname, "\\.sqlite$")) {
dbname <- paste(dbname, "sqlite", sep = ".")
}
dbConnect(SQLite(), dbname)
}

如何消除这个错误?我已将 stringr 和 RSQLite 添加到 DESCRIPTION 的依赖部分文件,它们出现在 NAMESPACE 中,所以我不认为这是一个导入问题 - 但是我没有记录什么?完整的包是here并且包含有问题函数的文件的文件是 here 。我查看了编写 R 扩展手册,但找不到问题 - 不知道我是否只是因为看而盲目 - 但我看不出我在这些函数中所做的事情与我编写的其他函数不同!

最佳答案

我在进行 R CMD 检查时遇到了类似的问题:

Status: 1 WARNING
checking for missing documentation entries ... WARNING
Undocumented code objects:
‘build.log.output’

一步一步删除所有文件后,我找到了原因:.Rbuildignore 文件!它包含(除了其他行之外)一行

^.*\.log

最后一行使 R 忽略名称中包含“.log”的所有文件,并且我的函数被命名为“build.log.output”,这导致 R 忽略生成的文档文件“build.log.output.Rd”创建包文件时通过Roxygen2

因此R CMD check无法在包文件中找到文档!

解决方案:

改进正则表达式以仅忽略真实的日志文件:

^.*\.log$

(“$”表示匹配行尾)。

瞧:-)

关于R 包构建未记录的代码对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com