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


  • 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.


Basic Examples  (1)

First load and install the R runtime:

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

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

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

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

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):

You can now unregister the data type:

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