构建包时,我收到了错误
Error in namespaceExport(ns, exports) :
undefined exports: FooBarBaz
这是什么意思,我该如何解决?
答案 0 :(得分:10)
当您尝试导出不存在的对象时,会发生此错误。也就是说,包NAMESPACE
文件包含行
export(FooBarBaz)
但是FooBarBaz
并不存在于包中。
发生此错误的一种情况是,当您尝试使用roxygen2
为多个功能创建公共帮助页面时。在下面的示例中,f
和g
是要在WidgetUtils
页面中记录的相关功能。
#' Widget-related functions
#'
#' Utility functions to assist working with widgets.
#' @param x An input.
#' @return A value.
#' @name WidgetUtils
#' @export
NULL
#' @rdname WidgetUtils
#' @export
f <- function(x)
{
x + 1
}
#' @rdname WidgetUtils
#' @export
g <- function(x)
{
x - 1
}
此代码块中的错误是在@export
roxygen块中包含WidgetUtils
标记。这告诉roxygen在NAMESPACE
文件中生成导出行,但其值为NULL
,因此无需导出。删除@export
行后,代码就能正常运行。
答案 1 :(得分:2)
我有一个非常愚蠢的错字:在roxygen2骨架中,我复制了进入#' @return
字段的内容,@export
。
应该是:
#' @return new data frame
#' @export
相反,我有:
#' @return
#' @export new data frame
答案 2 :(得分:0)
我删除了一个函数,而roxygen2似乎没有从NAMESPACE文件中删除它。进入那里,手动删除该行,它将纠正错误
答案 3 :(得分:0)
有替代方法,从GitHub repo下载包,然后Install & Restart