是否需要从基础包中导入显式roxygen?

时间:2016-11-30 10:57:03

标签: r r-package

具体例子:

在我的软件包中,我的一个函数使用grep格式base

我应该明确导入grep还是仅仅引入无用的依赖项?我的意思是,每个人都已经拥有base包,对吗?

为了便于说明:

#' Group_by with regex based column selection
#' Similar to `group_by` but grouping columns are selected with a regex.
#' @importFrom dplyr group_by
#' @importFrom base grep
#' @export
group_at <- function(df, pattern)
  group_by_(df, .dots=grep(names(df), pattern=pattern, value=T))

2 个答案:

答案 0 :(得分:8)

编写R扩展手册sec.1.1.3:

  

在没有版本规范的情况下声明对R的依赖是没有意义的,在包基上也没有意义:这是一个R包,并且包基始终可用。

答案 1 :(得分:0)

通过从NAMESPACE中删除与软件包base相关的以下术语

  import(base)  , 
 importFrom(base,system.file)

并在DESCRIPTION文件中,删除以下术语。

 Imports: base  

然后,以下错误消失了:

 preparing package for lazy loading
Error in asNamespace(ns, base.OK = FALSE) : 
  operation not allowed on base namespace
ERROR: lazy loading failed for package 'aa'