RLink`
RLink`

RDataTypeRegister

RDataTypeRegister[type,fwpatt,fwrule,bckpatt,bckrule] registers a new Wolfram Language representation for a data type with name type.

Details and OptionsDetails
  • The type argument should normally be a string.
  • Expressions matching the fwpatt pattern will be considered by RLink to be of type type.
  • The rule fwrule instructs RLink how to convert the new Wolfram Language representation to representation based on RObject.
  • The bckpatt pattern identifies types of expressions based on RObject that RLink considers to represent objects of type type.
  • The rule bckrule instructs RLink how to convert such expressions to a more convenient, higher-level Wolfram Language representation defined with RDataTypeRegister.
  • If the type with the name type has already been registered, RDataTypeRegister returns $Failed.
  • Examples

    Basic Examples  (1)

    First load and install the R runtime:

    In[1]:=
    Click for copyable input

    This will register a very simple data type (wrapper) that wraps around some core R data type, such as a vector:

    In[2]:=
    Click for copyable input

    You can test that the definition is now effective by using ToRForm:

    In[3]:=
    Click for copyable input
    Out[3]=

    You can now send your data to R, using the custom data container just defined:

    In[4]:=
    Click for copyable input
    Out[4]=

    The result is automatically converted according to the inverse conversion rule used above in RDataTypeRegister, when returned back from R:

    In[5]:=
    Click for copyable input
    Out[5]=

    You can see that this will also work on derivative R objects obtained through manipulations with the original object that do not change its type (class in R):

    In[6]:=
    Click for copyable input
    Out[6]=

    You can now unregister the data type:

    In[7]:=
    Click for copyable input

    Now the following will get back the usual representation based on RObject:

    In[8]:=
    Click for copyable input
    Out[8]=

    See Also

    RDataTypeDefinitionsReload  InstallR  UninstallR  $RDataTypePath  RDataTypeUnregister  RTypeOfHighLevelExpression  RTypeOfLowLevelExpression

    Tutorials