问题标签 [rinside]

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

r - 从 R 调用 Rcpp 文件时加载错误,然后在其中回调

我写了一个调用R程序hello1(),它是程序中包含的Rcpp函数demo2.cpp

demo2.cpp的是:

我尝试使用以下命令启动此脚本:

我收到以下错误:

dyn.load 中的错误(“/tmp/RtmpZl0JKp/sourceCpp-x86_64-pc-linux-gnu-0.12.10/sourcecpp_90cc33eafd15/sourceCpp_2.so”):无法加载共享对象'/tmp/RtmpZl0JKp/sourceCpp-x86_64-pc -linux-gnu-0.12.10/sourcecpp_90cc33eafd15/sourceCpp_2.so':/tmp/RtmpZl0JKp/sourceCpp-x86_64-pc-linux-gnu-0.12.10/sourcecpp_90cc33eafd15/sourceCpp_2.so:未定义符号:_ZN7RInsideD1Ev 调用:sourceCpp-> source -> withVisible -> eval -> eval -> dyn.load 执行停止

事实上,我想解决Rfor循环的缓慢问题。我有一个R程序,它有一个大for循环,执行速度非常慢。所以,我想将该for循环从R更改为C++代码。在for循环中,我调用了许多R函数。所以,我需要从C++代码调用R程序。因此,顺序是RC++R,即RRcppRinside,我错了吗?

为什么?

0 投票
1 回答
68 浏览

rinside - 在 RInside.h 和 Rh 中都定义了 HAVE_UINTPTR_T

当我的 ubuntu 更新了一些 r-cran 软件包时,出现了“HAVE_UINTPTR_T redefined”的警告。这个警告重要吗?有人可以解释这个宏吗?我还在一些 python 标头中找到了它。

0 投票
1 回答
36 浏览

r - 创建嵌入式 R 实例时执行卡住

我正在使用 RInside 将 R 集成到 Qt 应用程序中。目前,我正在尝试运行 RInside 包中的 Qt 示例。我能够构建示例,但在创建嵌入式 R 实例时执行卡住了。

在创建嵌入式 R 实例时执行被卡住并且没有给出错误。

使用的工作环境

RInside 包:版本 0.2.14

Linux 版本:Red Hat Enterprise Linux Client 5.8 (Tikanga)

R:3.1.1

Rcpp 库:0.11.4

R内部库:0.2.14

Qt:4.7.4

任何帮助或建议将不胜感激。谢谢。

更新 :

现在,我正在 rinside_sample0.cpp 中尝试一个更简单的示例。

}

此代码在运行时也会卡住。它卡在RInside R(argc, argv);

现在,当我将 R_HOME 设置为我的 R 目录时,执行给了我这个错误:

编译日志:

0 投票
1 回答
551 浏览

c++ - RInside 和 Rcpp 的区别

我了解 RInside 允许 C++ 程序嵌入 R 代码,而 Rcpp 允许 R 代码调用 C++ 函数或库。

RInside 和 Rcpp 之间是否存在其他差异和共性?为什么 RInside 有一个名为 Rcpp 的命名空间?开发人员是否总是需要 RInside 和 Rcpp 才能将 R 代码作为 Cpp 中的类来调用?

0 投票
1 回答
231 浏览

c++ - c++ 中 Rcpp 与 bcc 编译器的集成

嗨,我正在寻找一个用 borland 编译器 bcc32 编译的 c++ 库。在我尝试利用 RInside 的好处之前,不幸的是它只能与 gcc-compiler 一起使用,并且不能在我的编程环境中使用,这就是 Embarcadero。

  1. 是否可以将 Rcpp 与 bcc32 编译器一起使用?
  2. 市场上是否有兼容的库在 C++ 中进行统计计算

我希望你能帮助我。谢谢。

0 投票
1 回答
45 浏览

c++ - RInside InternalFunction 上一个类,如何从 R 调用函数

我需要从 C++ 调用 R,并且我正在使用出色的 RInside / Rccp 包。我不是 R 专家,这可能会解释我的问题,如果太明显,我很抱歉。

我制作了一个对象和一个包装类,类似于 Rinside 示例/标准/rinside_interactive0.cpp。在此示例中,它显示了如何将方法附加到 R 属性类。

实际上我从来没有看到从 R 调用这个函数,R 语法是什么?我虽然以这种方式使用 R.parseEval :

但这不起作用并给出错误:

那么我的问题是如何在 R 中调用 Solver.names 函数(在 C++ 代码中处理)?请注意,分配/检索功能工作正常,可能是因为它们在某种程度上是“原始的”?

非常感谢弗兰克

0 投票
1 回答
177 浏览

omnet++ - 是否可以在 omnet++/Veins 项目中使用 RInside 来受益于丰富的 R 功能

我正在学习 R,并通过这个名为RInside的包来提供 c++ 类来调用嵌入式 R 解释器。我可以运行一些在按照这篇博文进行配置并在 Omnet++ eclipse IDE 中使用提供的 makefile 之后给出的示例。我们如何将它与 say Veins 集成(veins 在顶层目录和 src 目录中已经有自动生成的 makefile)?Rinside 需要 GCC 工具链,我认为这在 OMNeT++ 中是默认的。

根据我到目前为止所学到的,这些是选项:

  1. Omnet++ 用户手册说我们可以为某些源目录使用自定义生成文件。因此,将 RInside 代码保存在一个源文件夹和一个单独的 makefile 中,并从 Venes 顶级 makefile 调用此 makefile。我尝试了这两种方法:
    1. 从 RInside 示例和 makefile 复制一些源文件并更改 IDE 中的构建属性以从构建中排除此文件夹
    2. 还为此目录使用了选项自定义生成文件。但到目前为止还没有成功。可能是我做得不对。
  2. 使用 Rinside 实现所有功能并使其成为库(静态/共享)。在静脉中使用这个库。

到目前为止,有没有人尝试将它与基于 omnet++/veins 的项目一起使用?有谁知道是否值得尝试?欢迎任何其他建议。

我正在使用 Ubuntu 16.04 LTS 64 位。

0 投票
1 回答
68 浏览

c++ - 从使用另一个共享库的源文件构建和使用共享库。(R内)

我是构建 C++ 应用程序和 RInside(从 C++ 程序提供嵌入式 R 解释器访问的库)的初学者,需要一些帮助。我想将所有使用 RInside 的代码分隔在一个类/模块中,并仅向需要这些数据的其他程序提供一个函数(获取一些输入,使用 RInside 执行一些任务并返回输出)。我正在试验是否可以在另一个项目/模块中使用此功能(如果有人特别需要,Omnet++ 静脉),它有很多其他源文件和单独的 makefile。如果可能的话,我不想触及这些模块及其编译过程。所以我尝试了一个简单的例子,并对构建有疑问。我在 Test1 类中有 RInside 代码,并想在 Test2 类中使用它。据我了解,我使用 RInside 作为共享库。所以我需要使用 Test1 构建一个共享库,并在 Test2 中包含或引用它。

目录 Shared_1:Test1.h , Test1.cc : 类 Test1

目录 shared_2:Test2.h,Test2.cc:类 Test2

我已经像这样从 Test1.cc 创建了 libTest1_1.so。

我想在 Test2.cc 中使用来自 Test1.cc 的 test1Function1() ,如果可能的话,用 g++ 的不同选项编译 Test2.cc。当我使用所有库(用于构建 Test1.cc 和 libTest1_1.so 的库)编译 Test2.cc 时,它运行良好。

但是当我通过提供Test1.h和libTest1.so的包含目录来编译它时,它给了我错误。如果我理解正确,g++ 会在我构建 Test2 时尝试编译 Test1。所以它说它找不到 RInside.h,即使我没有将它直接包含在 Test2 中。

在 ./shared_2/Test2.h:11:0 包含的文件中,来自 ./shared_2/Test2.cc:8: ./shared_1/Test1.h:12:74: 致命错误:RInside.h: 没有这样的文件或目录#include
^ 编译终止。

我想了解的是:1)如何使用 RInside 将代码与另一个项目/模块分开。2)我在这里做错了什么。
我在谷歌驱动器中包含了一些文件。

驾驶

我尝试在网上搜索但无法理解。我肯定想念一些东西。任何人都可以请帮忙。

0 投票
0 回答
41 浏览

c++ - C++ 调用 R 函数在单独的 .R 文件中定义

我希望我的 C++ 代码调用 R 函数,在两者之间传递数据。R 函数并非微不足道,目前在单独的 .R 文件中定义。

据我所知,Rinside 提供的示例将所有 R 代码“嵌入”在 C++ 代码中。

将我的 R 代码放入包中并在调用我的包的 C++ 代码中嵌入一个小的“存根”是唯一的解决方案吗?

0 投票
1 回答
85 浏览

c++ - 当我在 C++ 程序中包含 RInside 标头时,如何使链接器工作?

我正在尝试在 RInside 包的标准示例存储库中编译示例。我已经尝试运行已经在存储库中的 Makefile,但没有用。到目前为止,我遇到了几个错误,其中一些已经解决了。问题是,每次我解决一个错误时,都会发生两件事之一,它会出现一个新的错误或一个旧的错误再次出现。这是具有相应错误的不同生成文件的代码:

1) 没有 -L 的 Makefile

正如预期的那样,对这个文件应用 make 会返回关于未定义的 RInside::'s 引用的错误

2) 带有 -L 链接的 Makefile

错误是这样的:

原来libs库中的.so文件被命名为Rcpp.so,所以我把它重命名为libRcpp.so,错误就消失了。

3)在重命名后Rcpp.solibRcpp.so我将 make 应用到第 2 点的相同 makefile)并且错误再次与未定义的 RInside::: 引用有关

4)将make应用于文件夹中已经存在的makefile

错误(更改R_LIBS_USER

曾是:

到目前为止,我已经阅读了有关在 C++ 中包含标头的更多一般问题,以及一些专门关于 RInside 的问题,其中一些问题由编写包的 Dirk Eddelbuettel 回答,但所有答案都与使用-L<path>/include我几乎可以肯定我使用正确的链接器。

这是我到目前为止读到的一些问题:

在 Linux 上使用 g++编译 RInside 程序 在 Linux 上使用 g++ 编译 RInside 程序

编译 Rcpp 包

http://lists.r-forge.r-project.org/pipermail/rcpp-devel/2012-May/003829.html

http://rcpp-devel.r-forge.r-project.narkive.com/A70U2nVw/problem-with-rinside-hello-world-example

我正在使用带有 R 版本 3.4.4 的 Ubuntu 16.04。任何帮助将不胜感激!