问题标签 [rcpp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4371 浏览

c++ - 如何使用 R 和 RCPP 编译 dll?

我已经编写了一个 .cpp 文件,我想将它编译成一个 .dll 用于 R 和 RCPP。(不使用内联包)。我正在使用 WinXP 和 R 2.13.2 和 RCPP 0.9.7。我正在使用 Rtools 2.14。

  1. 如何在 minGW 的搜索路径中包含 Rcpp.h?我知道我需要包含的文件位于 C:\Program Files\R\R-2.13.2\library\Rcpp\include 中。但是,我无法将它们“添加”到“搜索路径”中。

  2. 我厌倦了暂时的“黑客”。我将 C:\Program Files\R\R-2.13.2\library\Rcpp\include 的内容复制到 minGW 的包含目录中。编译/链接过程从 myfile.cpp 到 myfile.o,但在编译 myfile.dll 之前会抛出一堆错误。

我已将 C:\Program Files\R\R-2.13.2\bin\i386 添加到我的 PATH 中,并且我正在从 WinXP 命令提示符调用 R CMB SHLIB myfile.cpp。

我应该做什么?

0 投票
3 回答
331 浏览

r - Solaris 上的 Rcpp

我正在尝试从 sparc-sun-solaris2.10 上的源代码编译 Rcpp_0.9.7。当我尝试使用 install.packages 时出现以下错误:

sh:制作:未找到

错误:包“Rcpp”的编译失败

从互联网上的研究来看,似乎其他人在使用 solaris 时也遇到了类似的问题。不幸的是,我不太了解我应该或不应该使用哪些编译器。然而,我开始意识到的一件事是,solaris 似乎是运行 R 的次优环境(就性能和便利性而言)。

0 投票
1 回答
3737 浏览

c++ - 如何在 R 中进行内联 C++ 函数调用?

好的,所以我正在用 R 编程,我想创建一个 C++ 函数。我已经导入了 Rcpp 和内联库。现在,我只是想创建一个简单的函数来添加 2 个数字,但无论我尝试什么,都会出错。

这是我的代码:

当我进入第二行时,我得到

我已经尝试了所有我能想到的东西,从强制转换到移动代码,到 #include RcppSexp,再到只是简单地返回 s,每次我遇到一些错误时,无论是

或者

或者

...我很困惑:(我在网上查看了几个示例,而我目前所拥有的似乎是其他人正在做的事情,并且它对他们神奇地起作用...

我随处可见的 SEXPREC* 是什么?它产生的外部“C”函数是什么?为什么它会在我的 return 语句之后生成语句并告诉我我的函数没有返回任何东西,即使它确实返回了?

0 投票
1 回答
677 浏览

c++ - 我可以在 Armadillo 中实例化矩阵,然后在后面的代码行中将其设置为使用辅助内存吗?

我正在使用带有 RcppArmadillo 的犰狳。是否可以声明一个矩阵,arma::mat A然后为我之前创建的这个矩阵分配一些内存arma::mat(aux_mem*, n_rows, n_cols, copy_aux_mem = true, strict = true)

目的是从 Rcpp::NumericMatrix 创建一个犰狳矩阵,但只if()满足特定条件。然后稍后在同一个函数中,我想使用该矩阵,但再次只if()满足一个条件。

0 投票
3 回答
5064 浏览

r - 如何测试 Rcpp::CharacterVector 元素是否相等?

我正在尝试编写一些简单的 Rcpp 代码示例。Rcpp使用andinline包,这非常容易。

但是我对如何测试两个字符元素是否相等感到困惑。下面的示例比较两个字符向量的第一个元素。但我无法编译它。

诀窍是什么?

--

如果两个元素之一是常数,则比较使用==效果很好。以下代码编译并给出预期结果:

0 投票
1 回答
354 浏览

c++ - 将 Valgrind 与 RInside 程序一起使用

有谁知道如何使用 Valgrind 来内存调试 RInside 程序?

0 投票
2 回答
1741 浏览

c++ - 在 Windows 上从 C++ 调用 R 函数

我正在尝试在 Windows 上从 C++ 调用 R 函数。我正在使用 MinGW 编译程序,但是在编译时会抛出错误。代码(取自 Dirk)和编译错误如下:

编译:

错误:

有什么我想念的想法吗?

0 投票
1 回答
2989 浏览

c++ - R数字向量列表->带有Rcpp的C ++ 2d数组

我主要使用 R,但最终想使用 Rcpp 与一些接收和返回二维数值数组的 C++ 函数交互。因此,要开始使用 C++ 和 Rcpp,我想我只需创建一个小函数,将我的可变长度数值向量的 R 列表转换为 C++ 等效项,然后再返回。

这就像我期望的那样工作:

诚然,我只是完成了非常详尽的文档的一部分,但是有没有比使用 for 循环更好(即更像 Rcpp)的方法来进行 R -> C++ 转换?我认为可能不是,因为文档提到(至少使用内置方法)as“提供的灵活性较低,并且目前处理将 R 对象转换为原始类型”,但我想检查一下,因为我是个新手在这个区域。

0 投票
1 回答
786 浏览

c++ - 将现有 C++ 代码移植到 R

我想将SpecialK Poker Hand 评估器移植R我认为使用Rcpp 包应该相对容易,但我不知道从哪里开始。

现有教程似乎专注于开发新的 C++ 代码以在 R 中使用。在这种情况下,我有 C++ 可以解决问题,并且我想在 R 中使用此代码以最少的麻烦。如果代码是一个独立的函数,我可以使用inline即时编译和链接它,但这在这里不起作用。

我猜这个问题有两个部分:

  1. 我是否需要对 C++ 源代码进行任何更改以使其与 Rcpp 兼容?
  2. 我如何从 R 中调用此代码,因为它不是一个小的自包含函数,我可以使用内联动态编译和链接?

我也愿意使用 Java、python 或 Objective-C 版本的评估器,但我认为这些不会更容易链接到 R。

0 投票
1 回答
443 浏览

c++ - 分配大向量的问题

我有以下程序。

输出是

这意味着vv2无法初始化 C++ 向量。为什么不能分配vv2?

使用内联,这是我得到的: