问题标签 [r-extension]

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

r - 在调整参数后调用原始函数是对 R-API 的错误使用吗?

我正在尝试在这里为 R 创建一个小扩展,以便在 R 提示符上嵌入当前时间:https ://github.com/musically-ut/extPrompt

事情似乎总体上正常,但R CMD check .提出了警告:

文件'[截断]..Rcheck/extPrompt/libs/extPrompt.so':发现对 R 的非 API 调用:'ptr_R_ReadConsole'</p>

编译后的代码不应调用 R 中的非 API 入口点。

相关文件是这样的:https ://github.com/musically-ut/extPrompt/blob/master/src/extPrompt.c ,我认为出现在第 38 行。

我正在尝试进行R_ReadConsoleAPI 调用。但是,由于一个不同的插件(比如我的)可能已经覆盖了它,我不想直接调用R_ReadConsole,而是之前在ptr_R_ReadConsole.

这是对 API 的错误使用吗?

0 投票
2 回答
778 浏览

c - 编写 R 扩展时如何返回命名的 VECSXP

最近我遇到了一个错误,在修复它时我想知道是否可以返回一个 VECSXP(即 R 列表类型),其中元素被命名。这个 c++ 代码:

会给我一个R中两个元素(矩阵和向量)的列表:

可以这样索引:

我必须改变什么才能使这成为可能:

或者这是不可能的?

0 投票
1 回答
285 浏览

r - 使用 R 的 C API 更改向量的大小

我正在使用从 RallocVector调用的 C 函数中分配 R 向量.Call。是否可以在分配向量后更改向量的大小/长度?即,类似于realloc在 C 中的工作方式。

在代码中,我正在寻找一个函数reallocVector,以便以下函数执行相同的操作。

0 投票
2 回答
282 浏览

r - 在 R 中播种用户提供的随机数生成器

我在 R 中播种用户定义的 RNG 时遇到了一些麻烦。似乎

实际上并不传递123给用户定义的 RNG 初始化。

我回到了可用的文档?Random.user并尝试了那里给出的示例代码,并稍作修改,我打印了传递给user_unif_init函数的种子(下面的完整代码)。

重现步骤:

  1. 将下面的代码粘贴到urand.c
  2. R CMD SHLIB urand.c
  3. 打开R
  4. 运行以下命令:

    /li>

这是我使用的完整代码urand.c

任何帮助将不胜感激!

0 投票
0 回答
53 浏览

r - r 扩展 netlogo,未找到对象“经济价值”

我正在使用 netlogo 开发一个在运行期间必须与 R 通信的模型。我使用 netlogo 中的 r 扩展名(而不是 R 中的 Rnetlogo)来执行此操作。

在设置中,我用 r:eval "source('C:/Users/keemi/OneDrive/Documenten/Thesis/heatpumps/scriptHeatpumpV1.R')" 这个加载我的脚本很好,因为我可以用这个代码询问我想要从脚本中得到什么。r:get "cpquery(fittedHeatpumpv1, event = (Reliability == 0.88), evidence = (Economic == 0.08))"鉴于证据,这给了我事件的机会百分比。

然而,证据必须来自 netlogo 网络,我这样做 r:put "economicvalue" reliability是在 r ->economicvalue 中创建一个变量,该变量来自 netlogo 中的可靠性值(示例中为 0.08)。然后我输入以下代码r:get "cpquery(fittedHeatpumpv1, event = (Reliability == 0.88), evidence = (Economic == economicvalue))"以获得相同的结果,但是 netlogo 给出了错误

Extension exception: Error in R-Extension: Error in Get. org.nlogo.api.ExtensionException: Error in eval(evidence, generated.data, parent.frame()) : object 'economicvalue' not found

error while company 157 running R:GET called by procedure INVEST called by procedure GO called by Button 'go-once'

这很奇怪,因为如果我在 r 本身做同样的事情,它工作得很好。并且脚本本身也可以正常工作,因为我可以从中加载内容。我还检查了 r:put 的值,如果我使用它回调它,它确实设置为 0.08r:get "economicvalue"

我也已经在没有来自 netlogo 的变量的情况下对其进行了测试,但只是将命令直接提供给 r usingr:eval "economicvalue <- 0.08"但会发生相同的错误。

我无法弄清楚我在这里做错了什么,因为如果我放置相同的代码行但不是来自 netlogo,代码本身可以在 r 中运行,并且 netlogo 也表现良好,因为我可以查看 r 命令是否与r:getand一起使用这一切都给出了正确的价值观。

有人可以帮帮我吗?

0 投票
1 回答
395 浏览

r - R扩展写入本地数据

我正在创建一个包并希望在本地存储设置数据,因为它对于包的每个用户都是唯一的,因此不必在每次加载包时都设置设置。

我怎样才能以最好的方式做到这一点?

0 投票
1 回答
143 浏览

r - .r 文件扩展名的大小限制是多少?

现在 .r 扩展文件的最大文件大小限制是多少?

我读到它有5MB的限制,还是一样吗?这将如何变化,它会因操作系统而异,还是因 R 版本而异。

参考:已达到 RStudio 最大文件大小

我对R很陌生,有人可以帮助我吗?

谢谢

0 投票
1 回答
42 浏览

r - 如何在不重新分配的情况下从 C char* ptr 创建 RAWSXP 向量

有没有一种方法可以创建由现有 C char* ptr 支持的 RAWSXP 向量。

下面我展示了需要重新分配和复制字节的当前工作版本,以及不存在的第二个想象版本。

我还注意到Rf_allocVector3这似乎可以控制向量的内存分配,但我无法让它工作。这是我第一次编写 R 扩展,所以我想我一定是在做一些愚蠢的事情。我试图避免复制,因为数据将在 GB 左右(非常大,虽然稀疏,矩阵)。

0 投票
0 回答
21 浏览

r-extension - 在 netlogo r-extension 中使用循环 (i)

我在 netlogo r-extension 中使用带有 i 的循环时遇到问题。我可以以这种方式使用循环吗?请指教。

'''

错误说——

扩展异常:R-Extension 中的错误:Eval 中的错误:org.nlogo.api.ExtensionException:[.data.frame(dataname, , 1:(4 * i)) 中的错误:找不到对象“i”

观察者运行 R:EVAL 时出错,由按钮“设置”调用的过程 SETUP 调用