To use JuliaCall package for julia engine in R Markdown document. Just set the engine for julia to JuliaCall::eng_juliacall like this:
knitr::opts_chunk$set(echo = TRUE)
knitr::knit_engines$set(julia = JuliaCall::eng_juliacall)
And in the julia code chunk, just use “```{julia}”.
Below is how it looks like when using JuliaCall as language engine for Julia.
## This is a julia language chunk.
## In julia, the command without ending semicolon will trigger the display
## so is JuliaCall package.
## The julia display will follow immediately after the corresponding command
## just as the R code in R Markdown.
a = sqrt(2)
1.4142135623730951
a = sqrt(2);
## And lots of different types of display are supported in JuliaCall.
## Like markdown and plots.
@doc sqrt
sqrt(x)Return $\sqrt{x}$. Throws
DomainErrorfor negativeRealarguments. Use complex negative arguments instead. The prefix operator√is equivalent tosqrt.
Plots.jlPlots.jl is an easy to use and powerful julia package for plotting, https://github.com/JuliaPlots/Plots.jl. And JuliaCall supports Plots.jl of cource!!
using Plots
pyplot()
Plots.PyPlotBackend()
Plots.plot(sin,(x->begin sin(2x) end),0,2pi,line=4,leg=false,fill=(0,:orange))
gr()
Plots.GRBackend()
Plots.plot(sin,(x->begin sin(2x) end),0,2pi,line=4,leg=false,fill=(0,:orange))
plotlyjs()
Plots.PlotlyJSBackend()
Plots.plot(sin,(x->begin sin(2x) end),0,2pi,line=4,leg=false,fill=(0,:orange))
plotly()
Plots.PlotlyBackend()
Plots.plot(sin,(x->begin sin(2x) end),0,2pi,line=4,leg=false,fill=(0,:orange))
And you can also get access to julia variables in R code chunk quite easily using JuliaCall, for example:
## This is a R language chunk.
## In the previous julia chunk, we define variable a,
## we can use functions in JuliaCall to get access to it.
JuliaCall::julia_eval("a")
## [1] 1.414214
## And you can also get access to Julia libraries and functions.
JuliaCall::julia_library("Gadfly")
JuliaCall::julia_call("Gadfly.plot", y = c(1:3),
need_return = FALSE, show_value = TRUE)
Currently only R Markdown html output is fully supported by JuliaCall.
When using JuliaCall in R Markdown, every julia display will be wrapped in a div with class = "JuliaDisplay", so you could customize the looking of julia display using css, for example, I use
<style>
.JuliaDisplay {
color: blue;
}
</style>
in this document.