Julia看起来非常有希望进行快速和语法合理的计算(例如here),但我怀疑在一段时间内,它在总体统计工作流程方面还不会接近R。所以我想在C++主要用于R程序的地方使用它:来优化代码的慢速部分。不过,在我花时间学习Julia之前,我想知道在R代码中嵌入Julia代码片段有哪些工具。
所以:
我想从R调用Julia,就像Rcpp现在允许从R内部调用C++一样。我不想从Julia给R打电话。(因此RCall.jl将无法工作)
发布于 2015-08-13 01:06:22
从R开始,RJulia R包看起来相当不错。R CMD check
运行时没有警告或错误(如果正确安装了julia
)。
在我看来,最大的任务是让Julia返回命名列表,它构成了R中真正基本的、灵活的通用数据结构。
请注意,Doug Bates提醒我注意RCall,这是一个从Julia到R的双向接口(即,从R到Julia的另一个方向)。此外,Doug还建议将julia 0.4.0作为目标,而不是当前julia的稳定版本。
自编写上述代码以来,又出现了几个接口:现在(2021-04),我们已经有了R包
JuliaCall
(~2017)将Julia嵌入到R中,并积极维护available from CRAN.JuliaConnectoR
(~2019),也可以从目标更高的CRAN获得,例如,将julia对象直接导入R发布于 2012-04-02 01:52:38
我也是have been looking at Julia ever since Doug Bates sent me a heads-up in January。但就像@gsk3一样,我在"Rcpp级别“上衡量这一点,因为我希望将丰富的R对象传递给Julia。而这一点现在似乎根本不受支持。
Julia有一个很好的简单的C接口。这样我们就可以得到像.C()
这样的东西。但正如最近在r-devel上讨论的那样,你实际上并不需要.C()
,在大多数情况下,你宁愿使用.Call()
来传递代表真实R对象的实际SEXP变量。因此,由于这一限制,我现在认为Julia在R中的应用范围很小。
也许在Julia成熟一点之前,使用tcp/ip到Rserve的间接接口可以是第一个开始,我们可以得到一个合适的C++接口。或者在进入中间层之前,我们使用基于Rcpp的东西从R获取到C++,就像实际的Rcpp只提供C层一样。我不知道。
在一天结束的时候,可能需要一些耐心。我大约在1996年或1997年开始关注R,当时Fritz Leisch在comp.os.linux.announce新闻组上发布了第一个公告。而R当时的功能相当有限(但S语言的全部承诺,当然,我们知道我们有一个赢家)。几年后,我准备让它成为我的主要建模语言。当时克朗的包裹还不到100个……
朱莉娅很有可能做到这一点。但就目前而言,我怀疑我们中的许多人都会在R上完成工作,并且只会好奇地瞥一眼Julia。
发布于 2012-05-23 09:06:15
正如我在this answer中描述的那样,Julia开发计划允许将Julia代码编译到共享库中,可使用C调用。一旦发生这种情况,从R调用Julia代码就像调用C/C++代码一样容易。然而,在这成为可能之前,还需要做大量的工作。
https://stackoverflow.com/questions/9965747
复制相似问题