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

c++ - 致命错误

我正在通过终端运行此示例。但是fatal error: RInside.h: No such file or directory该行出现错误,#include<RInside.h>. 它是从 C++ 到 R 的接口。我在 R 中有RInside包。我的代码:

#include<Rcpp.h>标题也发生了同样的错误。

包 RInside 版本 0.2.14

包 Rcpp 版本 0.12.17

0 投票
0 回答
202 浏览

r - png() ... dev.off() 在我使用 ggplot2 时在 RInside 中不起作用

此代码在 R 中运行良好

但是,如果我像这样从 C++ 评估这段代码:

未创建 png 文件。

我调查了这个问题,发现这个问题取决于 ggplot2。例如简单的代码:

效果很好。如果我使用“网格”包中的 grid.circle() 也会创建文件。ggsave() 函数也很好用。

为什么ggplot不能通过图形设备创建文件?

0 投票
0 回答
295 浏览

r - 在 QT 中编译 RInside 时无法打开基础包

我是 QT 的新手。我在使用 RInside 时遇到问题,希望得到一些帮助。

编译时,发生了错误。

在此处输入图像描述

编译器是“Desktop Qt MinGW 32bit”,qmake配置是这样的,我也尝试添加RInside lib like“

所有这些都不起作用。

在此处输入图像描述

感谢您的帮助!

0 投票
0 回答
148 浏览

c++ - RInside - 包装 C++ 函数以在 R 函数中使用

我希望在使用 RInside 的 C++ 程序中使用 R 库 cmaes(协方差矩阵适应进化策略)。

https://www.rdocumentation.org/packages/cmaes/versions/1.0-11/topics/cma_es

有相同算法(libcmaes)的 C++ 实现,但处理约束的方式(这不是算法的固有部分)与 R 实现不同。我以前没有使用过 RInside,所以我使用与库一起分发的示例作为参考点:

https://github.com/eddelbuettel/rinside/tree/master/inst/examples/standard

作为一个最小的例子,我试图集成到 C++ 中的 R 脚本如下所示:

我面临的问题是我的目标函数(它是 cma_es 的函数参数)是用 C++ 编写的(出于性能原因必须保留在 C++ 中),因此它必须以 R 函数接受它的方式包装. 我在示例中看不到任何东西来实现这样的事情。到目前为止,我拥有的 C++ 代码如下:

如果使用 Rcpp 将 C++ 函数传递给 R,则将// [[Rcpp::export]]使用它来传递它,但此处不适用。以上显然无法执行,并出现以下错误:

所以问题很简单,我如何使用 RInside 包装 C++ 函数,使其可以传递给 R 函数?

0 投票
1 回答
120 浏览

r - 在 Windows 上编译 RInside 示例时出错

我在 Windows 上编译 RInside 示例时遇到问题。

在 Rstudio 中,运行

从命令提示符,运行

显然没有找到这些包,所以我尝试了以下方法:

  1. 从命令行运行它set R_HOME=C:\Program Files\R\R-3.5.2
  2. 检查路径中是否存在 Rtools 和 R 目录
  3. 像这样修改了 Makefile.win:

R_LIBS_USER := "C:/Users/Admin/Documents/R/win-library/3.5"

R_ARCH := --arch x64

但仍然得到相同的错误。有什么帮助吗?谢谢


编辑:这个答案可能会通过在某处包含这行代码来提供解决方案

但是我不知道在哪里包含它。


EDIT2 我试图在两个库位置重新安装RcppRInside通过以管理员身份运行 RStudio)

在 RStudio 中,我仍然有同样的错误sourceCpp,但是,使用命令提示符和make方法我确实得到了一个不同的错误:

我想路径中的空格是问题“文件...”将尝试在非空格路径中重新安装 R

0 投票
1 回答
124 浏览

r - RInside 使用来自 R 的参数调用

我正在尝试将参数传递给包含 的exe文件RInside,并且该文件是使用make.

通过从这里获得启发的代码。

我有两个担忧:

首先,尝试make -f Makefile.win soraw给出以下错误。为什么它不工作?

x其次,从 R 传递和传递y给这个 c++ 代码(在编译成 exe 之后)而不是在 c++ 代码中声明它们的最佳方式是什么?我应该使用文件吗?


编辑这是尝试使用额外空间时的错误:candidate expects 0 arguments, 1 provided


编辑:这是我在修改这些行后得到的错误Makefile.win

0 投票
1 回答
173 浏览

omnet++ - 在 Windows 上使用 Veins 和 OMNET++ 配置 RInside

我一直在尝试使用 Veins 和 OMNET++ 配置 RInside,但发现了一些问题。

在经历了Is it possible to use RInside in omnet++/Veins project to benefit from rich R featuresHow to setup Eclipse + StatET + Rcpp on Windows中的讨论之后,我在 omnet++ 中创建了一个新项目(共享类型)并尝试配置R里面。我遇到了一些错误("undefined reference to RInside::operator[]", "undefined reference to RInside::parseEvalQ").

我知道这是一个链接错误。我对 C++ 配置和基于 Eclipse 的 IDE 相当陌生,因此很难找出问题所在。我还附上了配置的屏幕截图。如果有人可以提供帮助,我将不胜感激。

错误 配置 在此处输入图像描述 在此处输入图像描述

更新(成功构建 RInside 并确保工具链正确后)

这是makefrag文件

0 投票
0 回答
47 浏览

r - 在 Eclipse 中运行 RInside 示例时出错

问候,

我正在尝试在 Eclipse 中运行 RInside 示例,但出现此错误

这是 rinside_sample0 的代码:

我在eclipse中添加了以下配置: 在此处输入图像描述 在此处输入图像描述

任何帮助弄清楚如何解决这个问题将不胜感激

0 投票
0 回答
142 浏览

c++ - 使用 RInside 时如何检查 R 命令是否成功执行

我想编写一个程序来使用 RInside 执行 R 命令并判断结果是否为字符串。我创建了一个 RInside 实例并使用它的方法RInside::parseEval来解析 R 命令,然后将结果存储在 SEXP 变量中。我使用TYPEOF检查结果的类型是否为字符串,然后使用其构造函数将其转换为Rcpp::String。问题是,当我尝试解析诸如之类的错误命令时,程序的行为变得有些不可预测。程序如下图所示:paste('hello

当我用 agrument 运行程序时"paste('hello'",我得到了输出

res 指向 0x7f0ca84e14d0

结果不是字符串

但是,当我将代码打包成一个函数时,如图所示:

并使用与以前相同的命令行参数运行它"paste('hello'",我得到了输出

res 指向 (nil)

结果不是字符串

所以我的问题是,为什么它会这样?当使用 解析错误命令时RInside::parseEval,是否会引发异常或结果是否为 NULL 指针,或者至少会发生其中一种情况?我上面的代码是否正确地完成了它的工作?

任何帮助将不胜感激。

编辑0:

在花了一些时间阅读代码之后,R 似乎将该命令paste('hello视为“不完整”,这意味着如果我们稍后发送另一个命令来“完成”它,它将成功执行。

上面代码的结果是

结果你好

0 投票
0 回答
43 浏览

c++ - 使用 RInside 重用 RStudio 环境

背景/我尝试过的:

我的最终目标是能够从 RStudio 分派一些 C++ 代码(一个相当大的物理模拟应用程序),并且当 C++ 代码运行时,让它反复与嵌入式 R 实例对话以做出决策。完成后,C++ 代码会将结果返回给 R

起作用的是两个部分分开。使用 Rcpp,我可以从 RStudio 启动物理模拟,并让 C++ 代码将信息返回给 RStudio,假设 C++ 代码不与嵌入式 R 实例对话。使用 RInside/Rcpp,我还能够让 C++ 程序运行并在嵌入式 R 实例进行业务时对其进行查询。

当我尝试将两者结合起来时,我得到一个 R 实例已经初始化的错误——这当然是有道理的,这是 RStudio 实例。我试过看RInside::InstancePtr(),但它看起来不像RInside::instance_m是由 RStudio 设置的

问题:是否可以将现有的 RStudio R 实例重新用作嵌入式实例以与 RInside 一起使用?

这似乎是不可能的,一个 R 实例在等待同一个 C++ 程序返回的同时不能接受来自正在运行的 C++ 程序的输入。

上述结构的原因是我希望 R 能够调度许多具有不同参数的物理模拟并汇总这些结果。我还希望某些决策逻辑(嵌入式 R 文件)能够用 R 而不是 C++ 编写,以使用户更容易。这些就是引导我提出上述解决方案的想法