如何使用 @importFrom 以便它适用于整个 R 包?

问题描述 投票:0回答:1

自动化数据分析工作流程 我的

packagename.R
文件夹中的
packagename
文件中有以下代码。

我知道我将定期使用其他包中的某些函数,所以我想导入它们一次,而不是到处输入它们。我认为我应该能够通过上述方法做到这一点,但它在我的 RStudio 中不起作用。

#' packagename: Package containing tools support project work.
#'
#' This package provides a central repository for methods to facilitate 
#' project work
#' @importFrom dplyr bind_rows mutate filter group_by ungroup
#' @importFrom purrr pluck map map_chr map_dbl
#' @importFrom lubridate ymd_hms
#' @importFrom odbc odbc
#' @importFrom DBI dbConnect dbDisconnect
#' @importFrom stringr str_detect str_replace_all
#' @docType package
#' @name packagename
NULL

在另一个文件中

topic.R
我有:

do_thing <- function(x) str_replace_all(x, " ", "_"))

当我打电话给

do_thing
时,它告诉我:

Error in str_replace_all(x, " ", "_") : 
  could not find function "str_replace_all"

还有什么我需要补充的吗,或者我应该做一些不同的事情吗?

根据对问题的评论,我至少需要重新生成我的

NAMESPACE
,这显然是手动生成的(因为我使用 RStudio GUI 启动了该项目),所以
roxygen
不会更新它。我也对如何从 UI 中执行此操作感兴趣。

这就是我的构建菜单的样子:

我的

NAMESPACE
文件包含这些导入,但在尝试运行这些函数时我的测试脚本仍然失败。难道这不可能像 C. Braun 所建议的那样吗?

r r-package roxygen2
1个回答
0
投票

我就是这样做的:

#' @title External functions
#'
#' @description NA
#'
#' @rdname external_functions
#' @name external_functions
NULL
#' @rdname external_functions
#' @export
#' @importFrom lubridate ymd_hms
lubridate::ymd_hms

等等

© www.soinside.com 2019 - 2024. All rights reserved.