问题标签 [rcpp11]

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 回答
805 浏览

r - #包括找不到文件错误

我正在尝试Rcpp11从它的源代码中使用 r 中的包:

我在这里读到:http ://blog.r-爱好者.com/2014/05/27/disambiguating-rcpp11-and-rcpp/

我可以在文件开头使用include <Rcpp11>+但在采购时出现此错误:using namespace Rcpp11.cpp

其中egfile.cpp

有什么帮助吗?还是我应该遵循该// [[Rcpp::plugins(cpp11)]]方法?

更新:使用attributes::sourceCpp()

然后从干净的会话重新启动:

我得到:

0 投票
1 回答
662 浏览

c++ - 在 Rcpp11 下编译失败,找不到“未来”

我正在尝试使用 Rcpp11 绑定编译 R 包,以便在后台使用 C++11 二进制文件。我已经在我的Mac(OSX 10.9.5,编译器是clang++)上成功编译并使用了这个包:

Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn) Target: x86_64-apple-darwin13.4.0 Thread model: posix

但是,尝试使用 g++ 编译器版本 4.4.7-4 在 64 位 Red Hat Linux 下编译失败,因为future找不到调用的头文件或库或命名空间:

In file included from RcppExports.cpp:4: /path/to/R-libs/3.1/Rcpp11/include/Rcpp.h:50:18: error: future: No such file or directory

据我所知,future是 C++11 规范的一部分。我觉得奇怪的是成功加载了其他几个命名空间(我们成功地加载到了Rcpp.h的第 50 行),但future没有。这是由于使用了过时的编译器吗?作为参考,我将附加对失败的 g++ 编译器的实际调用:

g++ -m64 -std=c++0x -I/usr/include/R -DNDEBUG -I/usr/local/include -I"/path/to/R-libs/3.1/Rcpp11/include" -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c RcppExports.cpp -o RcppExports.o

0 投票
1 回答
733 浏览

r - NumericVector 和向量之间是否存在性能差异?

假设一个用途NumericVector和另一个用途vector<double>在他们的 Rcpp 代码中。这两种用法之间是否存在显着差异,尤其是在性能方面?

0 投票
1 回答
2012 浏览

r - RcppArmadillo:无法在 CentOS 上安装

我正在尝试在 CentOS 上安装 RcppArmadillo。以下是一些环境细节:

install.packages("RcppArmadillo")如果从 R 中运行,我在下面列出了我收到的错误消息。非常感谢任何帮助。干杯。

0 投票
3 回答
1865 浏览

r - 到路径的最近点

我有两组点,称为pathcenters。对于 中的每个点path,我想要一种有效的方法来查找中最近点的 ID centers。我想在 R 中执行此操作。下面是一个简单的可重现示例。

x并且y是坐标。我想向pathdata.frame 添加一列,该列具有给定 x 和 y 坐标的最近中心的 id。然后,我想获取所有唯一 ID。

我目前的解决方案确实有效,但是当问题规模增加时会非常慢。我想要更有效的东西。

任何有关加快此过程的帮助将不胜感激。

我认为data.table可能会有所帮助,但理想情况下,我正在寻找的是一种在搜索方面可能更智能的算法,即不是计算到每个中心的距离,然后只选择最小的一个......来获取 id ...

如果这有助于提高性能,我也很乐意使用Rcpp/ 。Rcpp11

我执行这种计算的最小可接受时间是 10 秒,但显然更快会更好。

0 投票
0 回答
176 浏览

r - Rcpp::DataFrame 的行

我有这个代码

这是访问特定列的虚拟行元素的正确方法。但如果我这样做

它返回给我一个operator[] is ambiguous的错误。但如果我们看到,DataFrame 只是一组向量。从数据结构的角度来看,DataFrame 将保存指向向量集的指针。因此[]运算符将返回一个指针,我可以通过取消引用进一步访问指针的不同元素。如果我错了,请纠正我。刚开始使用很棒的 Rcpp 包。我很少有这样的理论问题。我将不胜感激。

0 投票
1 回答
141 浏览

rcpp - 通过 DataFrame 在另一个内部调用一个 Rcpp 函数

我最近一直在将一些 R 代码转换为 Rcpp 函数。我正在模拟人们在停车场停车。我有一个功能,可以根据他们进入的大门和停车场的满载情况来选择一个人将停在哪个停车场。

在 R 中效果很好:

现在我正在尝试编写将循环遍历所有门活动并按顺序停放人员的函数。所以我有这个 Rcpp 函数:

这在同一个文件中,在 pickLotcpp 下。它编译得很好,但是当被调用时会导致 R 崩溃。

我编写了其他 Rcpp 代码,其中函数调用函数并且它们工作正常。我能想到的唯一一件事是,我正在将作为输入的 DataFrame 直接传递给另一个函数,但我找不到任何说我不能的东西。我不是专业的 C++ 程序员——几周前我才开始研究它,这让我很困惑。

我如何通过传递所需的距离和状态数据帧pickLotcpp来调用?test

0 投票
1 回答
165 浏览

r - RCpp 临时构建位置

我在动态库的链接仅限于某些位置的环境中工作。当我使用 RStudio 并请求一个新的 C++ 文件时,我得到了“Hello World”模板。当我尝试通过单击 RStudio 中的“源”来编译并链接它时,出现错误:

此错误是因为库位于不允许加载 DLL 文件的空间中。为了绕过这个限制,我想确定如何告诉 RCpp 将临时 dll(不在包中)放置在特定位置。

我知道 Dirk 建议这不在 RCpp 的范围内,并且所有代码都应该存在于包中,但这对于这里的用户来说并不是最友好的环境。我怀疑大多数人会将 RStudio 项目与 GIT 一起使用。

因此,话虽如此,是否有一个环境变量可以让 RCpp 将临时 dll 文件放置在特定位置。还是有其他一些机制可以用来改变这个?

0 投票
0 回答
124 浏览

r - 为什么LogicalVector 到std::vector转换需要这么长时间?

当使用 Rcpp 与外部库交互时,我们必须从 Rcpp 内置容器类转换为最常见的标准容器类。与往常一样,这种转换是有代价的。通常,这种开销是相当确定的,但在 Rcpp 转换LogicalVector 为 astd::vector<double>的情况下,成本似乎与其他类型的铸造/促销成本不一致......

考虑以下六个从 LogicalVector 到 std::vector 容器的简单转换的相等性...

由于 Rcpp 的模板魔法,我们得到了这种平等。我的模板 fu 不够强大,无法深入研究为什么手动转换与自动转换的开销存在如此大的差异,如这些基准结果所示......

比较直接使用 Rcpp 容器、自动转换为类似类型的标准容器和提升类型的容器的成本......

...很容易看到异常值。如果我们尝试将逻辑向量作为类似类型的 std 容器传递,然后让 c++ 在构造新容器时进行提升,结果也不会更好......

但是,如果LogicalVector由 Rcpp 提升并用于直接填充标准容器,结果会好得多。

我无法弄清楚为什么LogicalVectorto的自动转换std::vector<double>如此之慢......

0 投票
1 回答
692 浏览

c++ - 在 Rcpp 包中加载共享对象

我想./libdynamic/dynamic.hRcpp. 目录libdynamic嵌套在项目的文件夹src中。 当我尝试构建一个 R 包时,我遇到了dyn.load错误。

来源结构。

我已经成功编译了EclipsewithRcpp.hR.h


R CMD check

Makevars

问题:

看起来当 R 构建包时它没有链接以前编译的东西。 我如何强制 R 编译嵌套文件夹中的所有内容并链接它?