0
我有一個定義本地環境的包選項。當我嘗試從RCPP做同樣的事情如何訪問Rcpp中的包中本地定義的環境?
options <- new.env()
options$foo <- "bar"
foobar <- function() {
flag = options$foo == "bar"
flag
}
:只有
bool foobar() {
bool flag = false;
Environment env("package:myPackage");
SEXP o = env.get("options");
Environment options(o);
if (options.exists("foo")) {
std::string bar = as<std::string>(options["foo"]);
flag = (bar == "bar");
}
return flag;
}
這在書面中的R相同的封裝功能,可以訪問此環境沒有需要導出如果我將導出(選項)添加到NAMESPACE,則適用。所以我自己解決了這個問題,但很想知道這種明顯的不對稱性。出口要求是預期的,或者如果我的Rcpp函數的實現是責任?
附件包環境只包含導出的符號,所以試圖以默認方式查找'options'不會解決它。你需要從包的命名空間中獲取'options',而不是尋找你的包附加的環境。 –