问题标签 [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 投票
3 回答
3317 浏览

c++ - 在 UNIX 中使用 g++ 编译器从 C++ 代码链接到 R 和 RInside 库时出现未定义的引用错误

我想将 R 嵌入到 C++ 程序中。所以我也安装了 R、Rcpp 和 RInside。但是在 UNIX 中使用 g++ 编译时出现很多“未定义的引用”错误。我给出的编译命令是

g++ -I/path/to/R/include -I/path/to/Rcpp/include -I/path/to/RInside/include -L/path/to/R/libs -L/path/to/Rcpp/ libs -L/path/to/RInside/libs test.cpp -lRlapack -lRcpp -lRblas -lRInside"

测试.cpp:

错误:

我收到与 R 变量类似的 110 个未定义错误。我已将 R 和其他软件包安装到我自己的位置而不是默认位置。我现在被这个错误困住了 2 天。我似乎做的一切都是正确的,比如链接等。在此先感谢。

0 投票
1 回答
458 浏览

c++ - 编译 RInside 代码时出错

我想使用 RInside 编译 R 代码。但是我在使用函数 read.csv 时遇到了错误。代码片段如下:

我收到如下错误:

0 投票
1 回答
115 浏览

r - 从 C++ 调用时的 R 实例化

我正在使用 Rcpp 和 RInside,将基于 R 的代码与 c++ 互连。我从 C++ 对 R 进行了多次不同的调用。我想知道是否每次调用 R 都会创建一个新的 R 实例?

我想知道这一点的原因是因为我想通过预先计算的东西等来优化我的 c++ 代码。但我不知道调用是如何在内部处理的?

谢谢

-埃贡。

0 投票
2 回答
2263 浏览

r - 使用 RInside/Rcpp 从 C++ 调用 R 绘图

是否可以从 c++ 调用绘图函数?目前,当我尝试这样做时,ubuntu 终端会冻结一段时间(可能是创建 3d 图然后旋转 360 度的持续时间)然后解冻,而不会弹出新窗口。这是预期的行为还是我做错了什么?如何使用 rinside 和 rcpp 从 c++ 中运行绘图(R 图形)?

谢谢

-埃贡

0 投票
1 回答
424 浏览

oop - 将 RInside 的“R”实例作为类/方法之间的参数传递

我一直在使用 Rcpp 和 RInside 来集成RC++。我们有一个复杂但设计良好的 C++ 架构,我发现很难从一个函数中访问 R。是否可以将R 实例传递给不同的类/函数,以获得更多的 OOP 设计?如果是,有没有例子?

为了详细说明查询,我想说这样的话,


我目前注意到的是,每次调用 foo,可能会创建一个新的 RInside 实例。

谢谢 - 埃贡

0 投票
3 回答
2632 浏览

c++ - Windows下编译RInside示例的问题

我正在尝试在我们被迫使用 Windows 环境的工作中设置 RInside。

我已经安装了RTools并从 CRAN 下载了RInside 二进制文件

我的 R 安装位于c:\R\R-2.12.2中,因此带有空格的文件夹没有问题。

我已经在R中安装了RcppRInside包。

我执行下载的RInside二进制文件中包含的以下 makefile Makefile.win

用命令

尝试构建包含的标准示例

但是,我收到以下错误:

我尝试了不同的R_HOME路径,但我质疑我找到正确路径的能力。我是 makefile 的新手,所以错误输出没有太大帮助。

希望有人有一些有价值的见解分享!

提前致谢,

基督教

0 投票
1 回答
547 浏览

r - RInside: parseEvalQ 'Parse Error' 会导致每次对 parseEvalQ 的后续调用都给出'Parse Error',即使处理了异常也是如此

我的代码尝试通过 C++ 模拟 R shell,它允许用户通过 tcp 连接发送 R 命令,然后在运行时通过 RInside::parseEvalQ 函数将这些命令传递给 R 实例。我必须能够处理格式错误的命令。每当一个错误的命令作为 parseEvalQ 的参数给出时,我就会捕获抛出的运行时错误(查看 RInside.cpp,我的特定错误在 parseEval(const string&, SEXP) 函数中被标记为 'PARSE_ERROR' 'status'),what()给出“St9exception”异常。

我有两个问题,第一个比第二个更紧迫:

1个。在初始解析错误之后,任何对 parseEvalQ 的后续调用都会导致另一个解析错误,即使参数有效也是如此。解析错误是否以某种方式破坏了嵌入式 R 实例?

1b。RInside 文档建议使用 Rcpp::Evaluator::run 处理 C++ 中的 R 异常(我怀疑在调用 parseEval(const string&, SEXP) 期间在 R 实例中的某个地方抛出异常,然后它返回错误状态 'PARSE_ERROR ')。我尝试过尝试使用它,但在网上找不到如何实际使用 Rcpp::Evaluator::run 的示例。

2. 在我的程序中,我将 stdout 和 stderr(在 C++ 级别)重新路由到我的 tcp 连接的文件描述符,来自 RInside 实例的任何错误消息都会发送到控制台,但是常规输出不会。我发送 RInside 命令 'sink(stderr(), type="output")' 以将 stdout 重新路由到 stderr(因为 stderr 似乎出现在我的控制台中),但仍然没有显示常规输出。'print(command)' 有效,但我想要一种更简洁的方式将标准输出直接传递到控制台,就像在普通的 R shell 中一样。

任何帮助和/或想法将不胜感激。我的代码的精简版本如下所示:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

0 投票
1 回答
575 浏览

c++ - mvrnorm & riwish

我想从多元正态分布和逆愿望分布中抽样。我知道 R 有 mvrnorm (MASS) 和 riwish (MCMCpack)。是否可以通过 RInside 使用这些功能?

0 投票
3 回答
1147 浏览

c++ - g++ ld 找不到 x86_64 架构的 RInside 符号

我收到一个链接器错误,提示当我尝试使用 g++ 编译 RInside 示例文件时找不到符号。任何援助将不胜感激。

R 版本 2.13.1 安装在 Mac OS X 10.5 上。Rcpp 和 RInside 包含文件已复制到 usr/include 目录。R 头文件和库已使用 g++ 的 -I 和 -L 修饰符包含在内,如下所示:

rinside_sample0.cpp 文件是 RInside 软件包提供的示例,如下所示:

当我尝试使用 g++ 编译时,出现错误,如下所示:

有人可以告诉我我做错了什么以及如何解决吗?任何援助将不胜感激。

0 投票
1 回答
354 浏览

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

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