Dir*_*tel 54
自从道格贝茨在1月份给我一个单挑局以来,我一直在看朱莉娅.但是像@ gsk3一样,我在"Rcpp规模"上测量它,因为我想将丰富的R对象传递给Julia.而且现在似乎没有得到任何支持.
Julia有一个漂亮而简单的C接口.这样就可以得到类似的东西.C()
.但正如最近在r-devel上所讨论的那样,你真的不想要.C()
,在大多数情况下你更想要.Call()
传递代表真实R对象的实际SEXP变量.因此,由于这种限制,我认为来自R的Julia的范围很小.
也许使用tcp/ip到Rserve的间接接口可能是Julia成熟之前的第一个开始,我们得到了一个合适的C++接口.或者我们使用基于Rcpp的东西从R到C++之前进入我们进入中间层[有人必须编写]之前我们将数据提供给Julia,就像实际的R API只提供C层一样.不知道.
在一天结束时,可能需要一些耐心.我开始在1996年或1997年左右看到R,当时Fritz Leisch在comp.os.linux.announce新闻组上发布了第一个公告.然后R的设施相当有限(但是S语言的完全承诺,当然,我们知道我们有一个胜利者).几年后,我准备将它作为我的主要建模语言.那时CRAN还不到100包......
朱莉娅可能会到那儿.但是现在我怀疑我们中的许多人都会在R中完成工作,并且只对Julia进行了一些奇怪的瞥见.
Ste*_*ski 46
茱莉亚发展规划,我描述这个答案是允许的朱莉娅汇编代码共享库,可调用使用C ABI.一旦发生这种情况,从R调用Julia代码就像调用C/C++代码一样容易.但是,在此之前需要进行大量的工作.
Mar*_*ler 37
该 RJulia [R包现在看起来相当不错,从R. R CMD check
运行没有警告或错误(如果julia
正确安装).
在我看来,最大的TODO是让Julia返回命名列表,这些列表构成了R中真正基本灵活的通用数据结构.
请注意,Doug Bates提醒我关于 RCall从Julia到R的双向接口(即R到Julia的另一个方向).此外,道格建议瞄准朱莉娅0.4.0, 而不是目前稳定版的朱莉娅.
avi*_*iks 21
快速更新.自从提出这个问题以来,Julia软件包已经开始,允许人们从Julia内部调用R程序.
更多信息:https://github.com/lgautier/Rif.jl
Ada*_*dam 12
有没有人见过这个项目?
https://github.com/armgong/RJulia
相当新,但似乎正在做的正是要求!
我创建了一个JuliaCall
最近调用的R包,它将Julia嵌入到R中.包在CRAN上.
https://cran.r-project.org/web/packages/JuliaCall/index.html
https://github.com/Non-Contradiction/JuliaCall
包的用法如下:
library(JuliaCall)
julia <- julia_setup()
julia_command("a = sqrt(2)"); julia_eval("a")
julia_eval("sqrt(2)")
julia_call("sqrt", 2)
julia_eval("sqrt")(2)
Run Code Online (Sandbox Code Playgroud)
如您所见,您可以发送命令字符串并轻松调用Julia函数.
还有一些R包用Julia软件包包装JuliaCall
,例如,
欢迎任何反馈JuliaCall
!!
小智 6
还有XR软件包家族的XRJulia软件包,旨在通过John Chambers(R的创建者之一)使X趋于R。它使用略有不同的方法(JSON)在Julia和R之间以及rJulia和类似包之间传输数据。
您可能还想查看我的尝试:JuliaConnectoR
R 包。该软件包可从GitHub和CRAN 获得。
它的目标是直接在 R 中从 Julia 导入函数,以便它们可以像 R 代码中的 R 函数一样使用。Julia 函数的返回值被转换为 R 数据结构,它可以在 R 中使用,也可以传回给 Julia。为了进一步集成 Julia 和 R,还可以通过将 R 函数作为回调函数传递来从 Julia 回调到 R。
与 XRJulia 类似,JuliaConnectoR 依赖于 TCP,但它面向功能并使用优化的自定义流格式,而不是像 XRJulia 那样基于文本的 JSON 消息。TCP 通信的一个优点是相对于不同版本的 Julia 和 R 的稳定性。在像 RCall 和 JuliaCall 这样的 C 接口级别进行集成时,维护这一点要困难得多。
该软件包适用于 Julia ≥ 1.0 和各种 R 版本。