问题标签 [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.
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_ReadConsole
API 调用。但是,由于一个不同的插件(比如我的)可能已经覆盖了它,我不想直接调用R_ReadConsole
,而是之前在ptr_R_ReadConsole
.
这是对 API 的错误使用吗?
c - 编写 R 扩展时如何返回命名的 VECSXP
最近我遇到了一个错误,在修复它时我想知道是否可以返回一个 VECSXP(即 R 列表类型),其中元素被命名。这个 c++ 代码:
会给我一个R中两个元素(矩阵和向量)的列表:
可以这样索引:
我必须改变什么才能使这成为可能:
或者这是不可能的?
r - 使用 R 的 C API 更改向量的大小
我正在使用从 RallocVector
调用的 C 函数中分配 R 向量.Call
。是否可以在分配向量后更改向量的大小/长度?即,类似于realloc
在 C 中的工作方式。
在代码中,我正在寻找一个函数reallocVector
,以便以下函数执行相同的操作。
r - 在 R 中播种用户提供的随机数生成器
我在 R 中播种用户定义的 RNG 时遇到了一些麻烦。似乎
实际上并不传递123
给用户定义的 RNG 初始化。
我回到了可用的文档?Random.user
并尝试了那里给出的示例代码,并稍作修改,我打印了传递给user_unif_init
函数的种子(下面的完整代码)。
重现步骤:
- 将下面的代码粘贴到
urand.c
- 跑
R CMD SHLIB urand.c
- 打开
R
运行以下命令:
/li>
这是我使用的完整代码urand.c
:
任何帮助将不胜感激!
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:get
and一起使用这一切都给出了正确的价值观。
有人可以帮帮我吗?
r - R扩展写入本地数据
我正在创建一个包并希望在本地存储设置数据,因为它对于包的每个用户都是唯一的,因此不必在每次加载包时都设置设置。
我怎样才能以最好的方式做到这一点?
r - .r 文件扩展名的大小限制是多少?
现在 .r 扩展文件的最大文件大小限制是多少?
我读到它有5MB的限制,还是一样吗?这将如何变化,它会因操作系统而异,还是因 R 版本而异。
我对R很陌生,有人可以帮助我吗?
谢谢
r - 如何在不重新分配的情况下从 C char* ptr 创建 RAWSXP 向量
有没有一种方法可以创建由现有 C char* ptr 支持的 RAWSXP 向量。
下面我展示了需要重新分配和复制字节的当前工作版本,以及不存在的第二个想象版本。
我还注意到Rf_allocVector3
这似乎可以控制向量的内存分配,但我无法让它工作。这是我第一次编写 R 扩展,所以我想我一定是在做一些愚蠢的事情。我试图避免复制,因为数据将在 GB 左右(非常大,虽然稀疏,矩阵)。
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 调用