Internal API
Types
RCall.AnySxp
— TypeAnySxp <: Sxp
Representation of R "any" object (comparable to Ref{Any}
).
This corresponds to type tag 18.
Fields
head::SxpHead
RCall.BcodeSxp
— Type" BcodeSxp <: Sxp
Representation of R byte code.
This corresponds to type tag 21.
Fields
head::SxpHead
RCall.BuiltinSxp
— TypeBuiltinSxp <: FunctionSxp
Representation of R built-in function.
This corresponds to type tag 8.
Fields
head::SxpHead
RCall.CharSxp
— TypeCharSxp <: VectorAtomicSxp
Representation of R character string.
This corresponds to type tag 9.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.ClosSxp
— TypeClosSxp <: FunctionSxp
Representation of R function closure.
This corresponds to R type tag 3.
Fields
head::SxpHead
formals::Ptr{ListSxp}
body::Ptr{UnknownSxp}
env::Ptr{UnknownSxp}
RCall.CplxSxp
— TypeCplxSxp <: VectorNumericSxp
Representation of R complex vector.
This corresponds to type tag 15.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.DotSxp
— TypeDotSxp <: Sxp
Representation of R dot-dot-dot object.
This corresponds to type tag 17.
Fields
head::SxpHead
RCall.EnvSxp
— TypeEnvSxp <: Sxp
Representation of R environment.
This corresponds to type tag 4.
Fields
head::SxpHead
frame::Ptr{UnknownSxp}
enclos::Ptr{UnknownSxp}
hashtab::Ptr{UnknownSxp}
RCall.ExprSxp
— TypeExprSxp <: VectorListSxp
Representation of R expression vector.
This corresponds to type tag 20.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.ExtPtrSxp
— TypeExtPtrSxp <: Sxp
Representation of R external pointer.
This corresponds to type tag 22.
Fields
head::SxpHead
ptr::Ptr{Cvoid}
prot::Ptr{Cvoid}
tag::Ptr{UnknownSxp}
RCall.IntSxp
— Type" IntSxp <: VectorNumericSxp
Representation of R integer vector.
This corresponds to type tag 13.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.LangSxp
— TypeLangSxp <: PairListSxp
Representation of R function call.
This corresponds to type tag 6.
Fields
head::SxpHead
car::Ptr{UnknownSxp}
cdr::Ptr{UnknownSxp}
tag::Ptr{UnknownSxp}
RCall.LglSxp
— TypeLglSxp <: VectorNumericSxp
Representation of R logical vector.
This corresponds to type tag 10.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.ListSxp
— TypeListSxp <: PairListSxp
Representation of R pairs (cons) list cell.
This corresponds to R type tag 2.
Fields
head::SxpHead
car::Ptr{UnknownSxp}
cdr::Ptr{UnknownSxp}
tag::Ptr{UnknownSxp}
RCall.NilSxp
— TypeNilSxpR <: PairListSxp
Representation of R NULL
value.
This corresponds to R type tag 0.
Fields
head::SxpHead
RCall.PromSxp
— TypePromSxp <: Sxp
Representation of R promise.
This corresponds to type tag 5.
Fields
head::SxpHead
value::Ptr{UnknownSxp}
expr::Ptr{UnknownSxp}
env::Ptr{UnknownSxp}
RCall.RClass
— TypeRClass{Symbol}
Representation of R Class.
Examples:
RCall{:logical}
RCall{:integer}
RCall{:numeric}
RCall{:character}
RCall.RObject
— TypeRObject{S<:Sxp}
An RObject
is a Julia wrapper for an R object (known as an "S-expression", i.e. SEXP
). It is stored as a pointer which is protected from the R garbage collector, until the RObject
itself is finalized by Julia. The parameter is the type of the S-expression.
When called with a Julia object as an argument, a corresponding R object is constructed.
Examples
julia> RObject(1)
RObject{IntSxp}
[1] 1
julia> RObject(1:3)
RObject{IntSxp}
[1] 1 2 3
julia> RObject(1.0:3.0)
RObject{RealSxp}
[1] 1 2 3
Fields
p::Ptr{S}
Pointer to the relevant R object.
RCall.RawSxp
— TypeRawSxp <: VectorAtomicSxp
Representation of R byte vector.
This corresponds to type tag 24.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.RealSxp
— TypeRealSxp <: VectorNumericSxp
Representation of R real (numeric) vector.
This correponds to type tag 14.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.S4Sxp
— TypeS4Sxp <: Sxp
Representation of R S4 object.
This corresponds to type tag 24.
Fields
head::SxpHead
RCall.SpecialSxp
— TypeSpecialSxp <: FunctionSxp
Representation of R special function.
This corresponds to type tag 7.
Fields
head::SxpHead
RCall.StrSxp
— TypeStrSxp <: VectorListSxp
Representation of R vector of character strings.
This correponds to type tag 16.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.Sxp
— TypeSxp
Representation of R symbolic expression record SEXPREC
in R API.
These are represented by a pointer Ptr{S<:Sxp}
(which is called SEXP
in R API).
See also R internals documentation
RCall.SxpHead
— TypeSxpHead <: Sxp
R Sxp header (SEXPREC_HEADER
).
A pointer to this is used for unknown types.
Fields
info::SxpPtrInfo
attrib::Ptr{Cvoid}
gc_next::Ptr{Cvoid}
gc_prev::Ptr{Cvoid}
RCall.SxpPtrInfo
— TypeSxpPtrInfo
Representation of sxpinfo_struct
.
RCall.SymSxp
— TypeSymSxp <: Sxp
Representation of R symbol.
This corresponds to type tag 1.
Fields
head::SxpHead
name::Ptr{CharSxp}
value::Ptr{UnknownSxp}
internal::Ptr{UnknownSxp}
RCall.UnknownSxp
— TypeSxpHead <: Sxp
R Sxp header (SEXPREC_HEADER
).
A pointer to this is used for unknown types.
Fields
info::SxpPtrInfo
attrib::Ptr{Cvoid}
gc_next::Ptr{Cvoid}
gc_prev::Ptr{Cvoid}
RCall.VecSxp
— TypeVecSxp <: VectorListSxp
Representation of R list (i.e. Array{Any,1}
).
This corresponds to type tag 19.
Fields
head::SxpHead
length::Cint
truelength::Cint
RCall.WeakRefSxp
— TypeWeakRefSxp <: Sxp
Representation of R weak reference.
This corresponds to type tag 23.
Fields
head::SxpHead
length::Cint
truelength::Cint
Methods
Base.getindex
— Methodextract the value of symbol s in the environment e
Base.getindex
— Methodextract an element from a S4Sxp by label
Base.getindex
— Methodextract an element from a PairListSxp by label
Base.getindex
— MethodSet element of a VectorSxp by a label.
Base.getindex
— Methodextract the i-th element of a PairListSxp
Base.isascii
— MethodDetermines the encoding of the CharSxp. This is determined by the 'gp' part of the sxpinfo (this is the middle 16 bits).
- 0x00000200 (bit 1): set of bytes (no known encoding)
- 0x00000400 (bit 2): Latin-1
- 0x00000800 (bit 3): UTF-8
- 0x00004000 (bit 6): ASCII
We only support ASCII and UTF-8.
Base.length
— MethodSxp methods for length
return the R length.
Rf_xlength
handles Sxps that are not vector-like and R's "long vectors", which have a negative value for the length
member.
Base.names
— MethodReturns the names of an R vector, the result is converted to a Julia symbol array.
Base.setindex!
— Methodassign value v to symbol s in the environment e
Base.setindex!
— Methodextract an element from a S4Sxp by label
Base.setindex!
— MethodSet element of a PairListSxp by a label.
Base.setindex!
— MethodSet element of a VectorSxp by a label.
Base.setindex!
— Methodassign value v to the i-th element of a PairListSxp
Base.size
— MethodReturns the size of an R object.
RCall.anyna
— MethodCheck if there are any NA values in the vector.
RCall.bound
— MethodThe R NAMED property, represented by 2 bits in the info field. This can take values 0,1 or 2, corresponding to whether it is bound to 0,1 or 2 or more symbols. See http://cran.r-project.org/doc/manuals/r-patched/R-exts.html#Named-objects-and-copying
RCall.decref_extptr
— Methoddecref_extptr(p::Ptr{ExtPtrSxp})
Called by the R finalizer to remove p
from JULIA_TYPES_EXT_PTRS
RCall.endEmbeddedR
— MethodendEmbeddedR()
Close embedded R session.
RCall.findNamespace
— Methodfind namespace by name of the namespace, it is not error tolerant.
RCall.getNamespace
— Methodget namespace by name of the namespace. It is safer to be used than findNamespace as it checks bound.
RCall.getParseErrorMsg
— MethodGet the R parser error msg for the previous parsing result.
RCall.getattrib
— MethodReturn a particular attribute of an RObject
RCall.getclass
— MethodReturns the class of an R object.
RCall.getnames
— MethodReturns the names of an R vector.
RCall.ijulia_cleanup
— Methodijulia_cleanup()
Clean up R display device and temporary files after error.
RCall.ijulia_displayfile
— Methodijulia_displayfile(m::MIME, f)
Display a graphics file in IJulia.
This function generally should not be called by the user, but instead by the appropriate display hook.
See also ijulia_setdevice
.
RCall.ijulia_displayplots
— Methodijulia_displayplots()
Closes graphics device and displays files in notebook.
This is a postexecution hook called by IJulia after cell evaluation and should generally not be called by the user.
RCall.ijulia_init
— Methodijulia_init()
Initialize RCall's IJulia support.
RCall.ijulia_setdevice
— Methodijulia_setdevice(m::MIME; kwargs...)
ijulia_setdevice(m::MIME"image/png"; width=6*72, height=5*72)
ijulia_setdevice(m::MIME"image/svg+xml"; width=6, height=5)
Set options for R plotting with IJulia.
The first argument should be a MIME object: currently supported are
MIME("image/png")
[default]MIME("image/svg+xml")
The keyword arguments are forwarded to the appropriate R graphics device: see the relevant R help for details.
RCall.initEmbeddedR
— MethodinitEmbeddedR()
This initializes an embedded R session. It should only be called when R is not already running (e.g. if Julia is running inside an R session)
RCall.isNA
— MethodCheck if a value corresponds to R's sentinel NA values. These function should not be exported.
RCall.isna
— MethodCheck if the ith member of s correspond to R's NA values.
RCall.isna
— MethodCheck if the members of a vector are NA values. Always return a BitArray.
RCall.isnull
— MethodCheck if values correspond to R's NULL object.
RCall.julia_extptr_callback
— Methodjulia_extptr_callback(p::Ptr{ListSxp})
The function called by R .External
for Julia callbacks.
The argument should be a Ptr{ListSxp}
containing
- a pointer to the function itself (
Ptr{ExtPtrSxp}
) - a pointer to the Julia function (
Ptr{ExtPtrSxp}
) - any arguments (as
Ptr{S<:Sxp}
)
Returns Ptr{UnknownSxp}
to the result.
RCall.makeExternalPtr
— FunctionmakeExternalPtr(ptr::Ptr{Cvoid},
tag=Const.NilValue,
prot=Const.NilValue)
Create an Ptr{ExtPtrSxp} object.
RCall.makeNativeSymbolRef
— MethodmakeNativeSymbolRef(fptr::Ptr{Cvoid})
Register a function pointer as an R NativeSymbol
.
RCall.naeltype
— MethodNA element for each R base class
RCall.newEnvironment
— MethodnewEnvironment([env])
Create a new environment which extends environment env
(globalEnv
by default).
RCall.parseVector
— MethodA pure julia wrapper of R_ParseVector
RCall.polled_events
— Methodpolled_events()::Cvoid
Event Callback: allows R to process Julia events when R is busy. For example, writing output to stdout while running an expensive R command.
See Writing R Extensions: Calling R.dll directly and Writing R Extensions: Meshing Event Loops
RCall.prepare_inline_julia_code
— FunctionPrepare code for evaluating the julia expressions. When the code is evaluated, the results are stored in the R environment #JL
.
RCall.preserve
— Methodpreserve(p::Ptr{<:Sxp})
Prevent garbage collection of an R object.
Object can be released via release
.
This is slower than protect
, as it requires searching an internal list, but more flexible.
RCall.protect
— Methodprotect(p::Ptr{<:Sxp})
Stack-based protection of garbage collection of R objects.
Objects are released via unprotect
. Returns the same pointer, allowing inline use.
This is faster than preserve
, but more restrictive. Really only useful inside functions, where you can control the unprotect
step.
RCall.rcall
— MethodEvaluate a function in the global environment. The first argument corresponds to the function to be called. It can be either a FunctionSxp type, a SymSxp or a Symbol.
RCall.rcall_p
— MethodEvaluate a function in the global environment. The first argument corresponds to the function to be called. It can be either a FunctionSxp type, a SymSxp or a Symbol.
RCall.rcopy
— Methodrcopy(r)
copies the contents of an R object into a corresponding canonical Julia type.
RCall.rdevicename
— Methodrdevicename(::MIME"image/png")
rdevicename(::MIME"image/svg+xml")
Return the name of the associated R device as a symbol.
See also ijulia_setdevice
.
RCall.read_console
— MethodRCall.registerCFinalizerEx
— MethodregisterCFinalizerEx(s::Ptr{ExtPtrSxp})
Register finalizer to be called by the R GC.
RCall.release
— Methodrelease(p::Ptr{<:Sxp})
release(p::RObject{<:Sxp})
Release object that has been GC protected by preserve
.
RCall.render
— MethodRender an inline R script, substituting invalid dollar signs ($
) for Julia symbols
RCall.reval
— FunctionEvaluate an R symbol or language object (i.e. a function call) in an R try/catch block, returning an RObject.
RCall.reval_p
— MethodEvaluate an R expression array iteratively. If throw_error
is false
, the error message and warning will be thrown to stderr.
RCall.reval_p
— MethodEvaluate an R symbol or language object (i.e. a function call) in an R try/catch block, returning a Sxp pointer.
RCall.rimport
— FunctionImport an R package as a julia module. Sanitizes the imported symbols by default, because otherwise certain symbols cannot be used.
E.g.: PerformanceAnalytics::charts.Bar
in R becomes PerformanceAnalytics.charts_Bar
in Julia
gg = rimport("ggplot2")
normalization
is passed directly to replace
via splatting.
RCall.rlang
— MethodCreate a function call from a function pointer and a list of arguments and return it as an RObject, which can then be evaluated
RCall.rlang_p
— MethodCreate a function call from a list of arguments
RCall.robject
— Methodrobject(x)
converts a Julia object x
to a corresponding RObject implicitly. Explicit conversions could be called with robject(<R Class>, x)
.
RCall.rparse
— MethodParse a string as an R expression, returning an RObject.
RCall.rparse_p
— MethodParse a string as an R expression, returning a Sxp pointer.
RCall.rprint
— MethodPrint the value of an Sxp using R's printing mechanism
RCall.safe_parseVector
— MethodRParseVector wrapped by RtryCatchError. It catches possible R's stop
calls which may cause longjmp in C.
See Writing R Extensions: Condition handling and cleanup code
RCall.set_last_value
— MethodSet the variable .Last.value to a given value
RCall.setattrib!
— MethodSet a particular attribute of an RObject
RCall.setclass!
— MethodSet the class of an R object.
RCall.setnames!
— MethodSet the names of an R vector.
RCall.setup_callbacks
— Methodsetup_callbacks()
Initialize JULIA_CALLBACK
RCall.sexp
— Methodsexp(x)
converts a Julia object x
to a pointer to a corresponding Sxp Object.
RCall.sexp
— Methodsexp(p::Ptr{UnknownSxp})
Return a restrictively parameterized Ptr{<:Sxp}
pointing to the same object as p
.
RCall.sexp
— Methodsexp(::Type{RClass{:externalptr}}, j::Any)
Wrap a Julia object in a R Ptr{ExtPtrSxp}
.
We store the pointer and the object in JULIA_TYPES_EXT_PTRS
to protect it from Julia's GC.
RCall.sexp
— Methodsexp(::Type{RClass{:function}}, f)
Wrap a callable Julia object f
in a R ClosSxpPtr
.
Constructs the following R code
function(...) .External(JULIA_CALLBACK, fExPtr, ...)
RCall.sexp
— Methodsexp(::Type{<:Sxp}, s::RObject{<:Sxp})
Return the associated Sxp
pointer.
RCall.sexp_arglist_dots
— Methodsexp_arglist_dots(args...; kwargs...)
Create an argument list for an R function call, with a varargs "dots" at the end.
RCall.sexpnum
— Methodsexpnum(s::Sxp)
sexpnum(p::Ptr{<:Sxp})
Return the SEXPTYPE
number, i.e. type tag, of a Sxp
.
Determined from the trailing 5 bits of the first 32-bit word. Is a 0-based index into the info
field of a SxpHead
.
RCall.tryEval
— MethodA pure julia wrapper of R_tryEval.
RCall.unprotect
— Methodunprotect(n)
Release last n
objects GC-protected by protect
.
RCall.unsafe_array
— MethodThe same as unsafe_vec
, except returns an appropriately sized array.
RCall.unsafe_vec
— MethodRepresent the contents of a VectorSxp type as a Vector
.
This does not copy the contents. If the argument is not named (in R) or otherwise protected from R's garbage collection (e.g. by keeping the containing RObject in scope) the contents of this vector can be modified or could cause a memory error when accessed.
The contents are as stored in R. Missing values (NA's) are represented in R by sentinels. Missing data values in RealSxp and CplxSxp show up as NaN
and NaN + NaNim
, respectively. Missing data in IntSxp show up as -2147483648
, the minimum 32-bit integer value. Internally a LglSxp
is represented as Vector{Int32}
. The convention is that 0
is false
, -2147483648
is NA
and all other values represent true
.
RCall.validate_libR
— Methodvalidate_libR(libR)
Checks that the R library libR
can be loaded and is satisfies version requirements.
RCall.write_console_ex
— Methodwrite_console_ex(buf::Ptr{UInt8},buflen::Cint,otype::Cint)::Cvoid
R_WriteConsoleEx
API callback to write console output.
otype
specifies the output type (regular output or warning/error).
Macros
RCall.@R_str
— MacroR"..."
An inline R expression, the result of which is evaluated and returned as an RObject
.
It supports substitution of Julia variables and expressions via prefix with $
whenever not valid R syntax (i.e. when not immediately following another completed R expression):
R"glm(Sepal.Length ~ Sepal.Width, data=$iris)"
It is also possible to pass Julia expressions:
R"plot(#55)"
All such Julia expressions are evaluated once, before the R expression is evaluated.
The expression does not support assigning to Julia variables, so the only way to retrieve values from R is via the return value.
RCall.@rget
— Macro@rget(args...)
Copy variable(s) from R to Julia using the same name.
RCall.@rimport
— MacroImport an R Package as a Julia module. For example,
@rimport ggplot2
is equivalent to ggplot2 = rimport("ggplot2")
with error checking.
You can also use classic Python syntax to make an alias: @rimport *package-name* as *shorthand*
@rimport ggplot2 as gg
which is equivalent to gg = rimport("ggplot2")
.
RCall.@rlibrary
— MacroLoad all exported functions/objects of an R package to the current module. Almost equivalent to
__temp__ = rimport("ggplot2")
using .__temp__
RCall.@rput
— Macro@rput(args...)
Copy variable(s) from Julia to R using the same name.
Constants
RCall.JULIA_CALLBACK
— ConstantJULIA_CALLBACK
RObject
containing an ExtPtrSxp
to the Julia callback.
RCall.JULIA_TYPES_EXT_PTRS
— ConstantJULIA_TYPES_EXT_PTRS
Julia types (typically functions) which are wrapped in Ptr{ExtPtrSxp}
are stored here to prevent garbage collection by Julia.
RCall.SXP_TYPES
— ConstantSXP_TYPES
Ordered collection of R SEXP
types, so that the (index - 1) matches the type tag.
RCall.globalEnv
— ConstantR global Environment.
globalEnv[:x] = 1
globalEnv[:x]
RCall.jtypExtPtrs
— ConstantjtypExtPtrs
Deprecated alias for JULIA_TYPES_EXT_PTRS