如何防止来自NAMESPACE文件的autodeletion的importFrom语句?

时间:2014-08-01 11:57:29

标签: r namespaces package devtools roxygen2

我的NAMESPACE文件是:

# Generated by roxygen2 (4.0.1): do not edit by hand
export(ARorderG)
export(VOBoegmc)
export(conddiffG)
................
export(sablon)

尝试通过以下方式检查包裹时:

devtools::check("C:/Users/erdogan/Documents/Revolution/causfinder")

我收到很多错误:

conddiffG: *no visible global function definition for* 'b.star'. 

到目前为止我已尝试过的内容:我已将以下importfrom手动添加到NAMESPACE file

importFrom(np, b.star)

我为所有“......没有可见的全局函数定义...”错误做了这些。然后我又一次触发了:

devtools::check("C:/Users/erdogan/Documents/Revolution/causfinder")

不幸的是,所有 importFrom语句都是从NAMESPACE文件中自动删除的。我读到这是因为从NAMESPACE重新创建roxygen2文件。

我需要importFrom语句才能成功检查发送CRAN的包,但是roxygen2会自动删除这些importFrom语句并只保留导出语句。

如何使用importFrom阻止roxygen2语句的删除?

提前非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

roxygen2会自动更新NAMESPACE文件的内容。因此,为了防止importFrom文件中的NAMESPACE语句自动删除,必须将这些语句从包的函数的NAMESPACE引入.R files文件;不要手动写入NAMESPACE文件。为了争论,让函数conddiffG使用包b.star的一些函数np。然后,在包的R conddiffG.R文件夹中,我们必须在#' @export行之前写下以下内容:

#’ @importFrom np b.star

这会在以后的过程中自动在importFrom(np,b.star)文件中创建NAMESPACE roxygenizebuildinstalllibrary,{{ 1}} ...)。