我正试图将数据帧与rcpp中的矩阵相协调,如下所示:在rcpp 中将数据帧转换为矩阵的最佳方法
NumericMatrix testDFtoNM(DataFrame x) {
NumericMatrix y = internal::convert_using_rfunction(x, "as.matrix");
return y;
}
我得到错误:
Line 135 reference to 'internal' is ambiguous.
这似乎表明存在多个以内部作为定义的活动命名空间。
我如何找到额外的内部和/或如何修复要编译的代码而不出现错误?
更新:Allan给了我解决方案,使用Rcpp::inline确实允许它工作,但不是为什么以及如何自己找到正确的命名空间。
我当前的名称空间是:
using namespace Rcpp;
using namespace std;
using namespace arma;
using namespace RcppParallel;
显然,内部存在于其中不止一个。有没有一种方法可以在不尝试和错误的情况下找到哪些参考文献。
您试图调用的函数位于internal
命名空间中,该命名空间嵌套在Rcpp
命名空间中,如您在文档中看到的。假设您使用了至少两个带有嵌套名称空间internal
的名称空间。因此,简单地指定
NumericMatrix testDFtoNM(DataFrame x) {
NumericMatrix y = Rcpp::internal::convert_using_rfunction(x, "as.matrix");
return y;
}
应解决歧义。