c/c++语言开发共享R外部接口

我想实现一些用C代码编写的R包。

C代码必须:

实现数组传递的最佳实践是什么?

目前用.C()调用C代码。 它通过指针直接从R访问数组。 不幸的是,对于输出不能做同样的事情,因为输出尺寸需要事先知道,这在我的情况下是不正确的。

将数组从C传递到R通过文件是否有意义? 例如,在ramfs中,如果使用linux?

更新1: 这里讨论了完全相同的问题。 在那里,提到了返回具有未知尺寸的arrays的可能选项:

在计算数组之前但在已知尺寸之后将外部函数拆分为两个。 第一部分将返回维度,然后将准备空数组,然后第二部分将运行并在R中填充数组。
在我的情况下,只有在执行整个代码时才知道完整维度,因此这种方法意味着运行C代码两次。 猜测最大数组大小也不是可选的。

更新2:似乎只有这样做的方法是使用.Call()代替,如同建议的功率。 以下是一些很好的例子: http : //www.sfu.ca/~sblay/RC-interface.ppt 。

谢谢。

    实现数组传递的最佳实践是什么?

    包是否已用ANSI C编写? 然后.C()会快速而简单。

    如果你是从头开始写,我建议.Call()和Rcpp。 通过这种方式,您可以将R对象传递给C / C ++代码。

    将数组传递给文件是否有意义?

    没有

    阅读“编写R扩展”。

      以上就是c/c++开发分享R外部接口相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/545708.html

      (0)
      上一篇 2021年1月10日
      下一篇 2021年1月10日

      精彩推荐