转换为矩阵时对 'internal' 的引用不明确?
Reference to 'internal' is ambiguous when converting to matrix?
我正在尝试将数据帧与 rcpp 中的矩阵进行协调,如以下答案所示:best way to convert DataFrame to Matrix in RCpp
NumericMatrix testDFtoNM(DataFrame x) {
NumericMatrix y = internal::convert_using_rfunction(x, "as.matrix");
return y;
}
我收到错误:
Line 135 reference to 'internal' is ambiguous.
这似乎表明有不止一个以 internal 作为定义的活动命名空间。
我怎样才能找到额外的内部and/or我怎样才能修复代码编译不出错?
更新:
Allan 给了我解决方案并且使用 Rcpp::inline 确实允许它工作,但不是为什么以及如何我自己找到正确的命名空间。
我当前的命名空间是:
using namespace Rcpp;
using namespace std;
using namespace arma;
using namespace RcppParallel;
显然内部存在不止一个。
有没有办法不用反复试验就可以找到哪些参考文献有它。
您尝试调用的函数位于 internal
命名空间中,该命名空间嵌套在 Rcpp
命名空间中,如您在 the docs 中所见。大概您正在使用至少两个名称空间和一个名为 internal
的嵌套名称空间。因此只需指定
NumericMatrix testDFtoNM(DataFrame x) {
NumericMatrix y = Rcpp::internal::convert_using_rfunction(x, "as.matrix");
return y;
}
应该可以解决歧义。
我正在尝试将数据帧与 rcpp 中的矩阵进行协调,如以下答案所示:best way to convert DataFrame to Matrix in RCpp
NumericMatrix testDFtoNM(DataFrame x) {
NumericMatrix y = internal::convert_using_rfunction(x, "as.matrix");
return y;
}
我收到错误:
Line 135 reference to 'internal' is ambiguous.
这似乎表明有不止一个以 internal 作为定义的活动命名空间。
我怎样才能找到额外的内部and/or我怎样才能修复代码编译不出错?
更新: Allan 给了我解决方案并且使用 Rcpp::inline 确实允许它工作,但不是为什么以及如何我自己找到正确的命名空间。
我当前的命名空间是:
using namespace Rcpp;
using namespace std;
using namespace arma;
using namespace RcppParallel;
显然内部存在不止一个。 有没有办法不用反复试验就可以找到哪些参考文献有它。
您尝试调用的函数位于 internal
命名空间中,该命名空间嵌套在 Rcpp
命名空间中,如您在 the docs 中所见。大概您正在使用至少两个名称空间和一个名为 internal
的嵌套名称空间。因此只需指定
NumericMatrix testDFtoNM(DataFrame x) {
NumericMatrix y = Rcpp::internal::convert_using_rfunction(x, "as.matrix");
return y;
}
应该可以解决歧义。