r - 转换为矩阵时对“内部”的引用不明确?
问题描述
我正在尝试将数据帧与 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 作为定义的活动命名空间。
如何找到额外的内部和/或如何修复代码以编译而不会出现错误?
更新:艾伦给了我解决方案,使用 Rcpp::inline 确实允许它工作,但不是为什么以及如何我自己找到正确的命名空间。
我当前的命名空间是:
using namespace Rcpp;
using namespace std;
using namespace arma;
using namespace RcppParallel;
显然,内部存在不止一个。有没有一种方法可以在没有反复试验的情况下找到哪些参考文献。
解决方案
您尝试调用的函数internal
位于嵌套在命名空间内的命名空间中,如您在docsRcpp
中所见。大概您正在使用至少两个具有嵌套命名空间的命名空间,称为. 因此只需指定internal
NumericMatrix testDFtoNM(DataFrame x) {
NumericMatrix y = Rcpp::internal::convert_using_rfunction(x, "as.matrix");
return y;
}
应该解决歧义。