提问人:generic 提问时间:10/8/2022 最后编辑:generic 更新时间:10/8/2022 访问量:372
R CMD 检查警告:“未定义的全局函数或变量”
R CMD check Warning: "Undefined global functions or variables"
问:
我希望我能得到关于正确的 R 包装技术的建议。当我运行时,我收到这些消息,指的是我的 zzz。R 文件:R CMD check packagename
File ‘packagename/R/zzz.R’:
.onLoad calls:
packageStartupMessage("my message.")
packageStartupMessage("another message.")
packageStartupMessage("and another message)
See section ‘Good practice’ in '?.onAttach'.
.onLoad: no visible global function definition for ‘unzip’
.onLoad: no visible global function definition for ‘file.move’
Undefined global functions or variables:
file.move unzip
Consider adding
importFrom("utils", "unzip")
to your NAMESPACE file.
我不完全清楚这意味着什么。
根据第一条消息,我没有功能。我只是有一个功能。我的包在没有 的情况下工作正常,所以我不确定这里暗示了什么。See section ‘Good practice’ in '?.onAttach'.
.onAttach()
.onLoad()
.onAttach()
我不确定为什么会显示我,因为我像这样使用 unzip 和 file.move:,..onLoad: no visible global function definition for ‘unzip’
.onLoad: no visible global function definition for ‘file.move’
utils::unzip()
ff::file.move()
如何添加到我的 NAMESPACE 文件中?我没有直接编辑过这个文件,因为当我打开它时,我收到一个警告,不要手动编辑它。importFrom("utils", "unzip")
这就是我的zzz。R 文件如下所示:
.onLoad <- function(libname, pkgname) {
quiet <- function(x) {
sink(tempfile())
on.exit(sink())
invisible(force(x))
}
path <- paste0(.libPaths(), "/packagename/")[1]
if(file.exists(paste0(path, "data/"))) { invisible()
} else {
url <- "urlpath"
fname <- paste0(path, "data.zip")
packageStartupMessage("message.")
tryCatch({
utils::download.file(url, fname, mode = "wb")
zip_file <- paste0(path, "data.zip")
utils::unzip(zip_file, exdir = paste0(path, "uncompressed_data"))
from <- paste0(path, "uncompressed_data/data/")
to <- paste0(path, "data/")
quiet(ff::file.move(from, to))
quiet(file.remove(paste0(path, "data.zip")))
quiet(file.remove(paste0(path, "uncompressed_data"))) },
warning = function(cond) {
packageStartupMessage("message.")
packageStartupMessage("message") } )
}
}
我的 NAMESPACE 文件只是这样说:
# Generated by roxygen2: do not edit by hand
非常感谢您的输入。
答: 暂无答案
评论
onLoad
.onLoad
.onLoad