转换为矩阵时对 '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;
}

应该可以解决歧义。