首页 > 解决方案 > 转换为矩阵时对“内部”的引用不明确?

问题描述

我正在尝试将数据帧与 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;

显然,内部存在不止一个。有没有一种方法可以在没有反复试验的情况下找到哪些参考文献。

标签: rrcpp

解决方案


您尝试调用的函数internal位于嵌套在命名空间内的命名空间中,如您在docsRcpp中所见。大概您正在使用至少两个具有嵌套命名空间的命名空间,称为. 因此只需指定internal

NumericMatrix testDFtoNM(DataFrame x) {
  NumericMatrix y = Rcpp::internal::convert_using_rfunction(x, "as.matrix");  
  return y;
}

应该解决歧义。


推荐阅读