當建立一個包,我得到了錯誤「namespaceExport(ns,exports):undefined exports」中的錯誤是什麼意思?
Error in namespaceExport(ns, exports) :
undefined exports: FooBarBaz
這是什麼意思?我該如何解決呢?
當建立一個包,我得到了錯誤「namespaceExport(ns,exports):undefined exports」中的錯誤是什麼意思?
Error in namespaceExport(ns, exports) :
undefined exports: FooBarBaz
這是什麼意思?我該如何解決呢?
當您嘗試導出不存在的對象時,會發生此錯誤。也就是說,包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
標籤在WidgetUtils
roxygen塊列入。這告訴roxygen在NAMESPACE
文件中生成導出行,但其值爲NULL
,因此不需要導出。通過刪除@export
行,所以代碼將正常工作。
注意不要有任何以撇號開頭的註釋行!
運氣不好,我的函數中我曾評論指出,隨着撇號開始(在「太空堡壘卡拉狄加」在我的假例如前)一行所以它看起來像這樣:
#' @export
getMyFavoriteSciFiShows <- function() {
myFavoriteSciFiShows <-
c('Star Trek Next Generation',
#'Battlestar Galactica',
'Babylon 5')
return(myFavoriteSciFiShows)
}
這真的搞砸了roxygen2 v 6.0.1,因爲它沒有任何的信號錯誤和這是它把我的NAMSEPACE文件:
export("Galactica',")
export(Battlestar)
不僅是我的希望的出口myFavoriteSciFiShows失蹤,但添加了兩個錯誤的。這些錯誤的可導致未定義的輸出。
你可以提供一個'#'@ export'失敗的例子嗎? – 2017-02-22 21:27:09
@RichieCotton \ @export可能會失敗[如果該函數包含以撇號開頭的註釋行](http://stackoverflow.com/a/42513528/283973)。 – PeterVermont 2017-02-28 16:18:50
@RichieCotton一旦我想出了爲什麼我的出口有問題,我就替你回答了我的整個答案。謝謝! – PeterVermont 2017-02-28 16:25:11
這不會幫助我 – 2015-12-01 17:35:26
@MarcinKosiński如果這個答案不符合你的需求,那麼要麼1)弄清楚你的情況出了什麼問題,並更新答案(這是一個社區wiki,所以隨意編輯),或者2)詢問一個描述你的問題的新問題,並且包括一個最小可重現的例子。否則,你只是拖釣。 – 2015-12-02 07:01:55