ToRForm
Details and Options
- Null is interpreted as an R NULL element and transformed to RNull[].
- Scalars of basic vector types (integers, reals, complex numbers, strings, and True|False) are interpreted as one-element R vectors of the same types. This reflects the way they are treated in R.
- Lists (or multidimensional arrays) of basic vector types (integers, reals, complex numbers, strings, and True|False) are interpreted as R vectors and transformed into expressions with an RVector head.
- All lists representing R vectors (including multidimensional arrays) can contain missing elements, which must be represented by Missing[].
- Lists not matching the above description will automatically be interpreted as R lists and converted to expressions with the head RList. That would include ragged lists and lists of elements of different types. Valid (for the purposes of RLink) R lists can contain other valid R lists, valid R vectors, or an R NULL element.
- Expressions with the heads REnvironment, RCode, or RFunction are left unchanged under the action of ToRForm, with the exception of the conversion of function attributes that expressions with the head RFunction may contain.
- Whenever you need to send to R an object with nontrivial attributes, you will need to use the container RObject, which allows you to store both your data and the attributes, and RAttributes, for attributes specifically.
- All Wolfram Language expressions that do not fall into one of the above categories cannot be currently sent to R and passing those to ToRForm will result in $Failed being returned.
- ToRForm is called internally by RSet to convert your input into internal RLink representation before sending it to R. Most of the time, you will not need to call this function explicitly. It is, however, useful to determine RLink's internal form of your input, in particular to test whether or not RLink interpreted your input as you intended.
Examples
Basic Examples (6)Summary of the most common use cases

https://wolfram.com/xid/0g6yb9huzg5sn0q-temgg
Here are some sample conversions for basic vector types:

https://wolfram.com/xid/0g6yb9huzg5sn0q-hqskmn

NULL is transformed to RNull:

https://wolfram.com/xid/0g6yb9huzg5sn0q-l5etfd

Here is an internal form of a list of integers:

https://wolfram.com/xid/0g6yb9huzg5sn0q-loicz7


https://wolfram.com/xid/0g6yb9huzg5sn0q-gifbtr


https://wolfram.com/xid/0g6yb9huzg5sn0q-bnk8qf


https://wolfram.com/xid/0g6yb9huzg5sn0q-hvtyu5

A list of logical values (True or False):

https://wolfram.com/xid/0g6yb9huzg5sn0q-bg7h0x


https://wolfram.com/xid/0g6yb9huzg5sn0q-jlcn36


https://wolfram.com/xid/0g6yb9huzg5sn0q-ccqa0p

However, lists of elements of different types will be interpreted as an R list. For example:

https://wolfram.com/xid/0g6yb9huzg5sn0q-43ukq


https://wolfram.com/xid/0g6yb9huzg5sn0q-iqe2yy


https://wolfram.com/xid/0g6yb9huzg5sn0q-dqvske

The previous example illustrates that the full internal RLink form is often rather inconvenient to work with.
Here is an internal form of an integer matrix:

https://wolfram.com/xid/0g6yb9huzg5sn0q-dltx26


https://wolfram.com/xid/0g6yb9huzg5sn0q-ctj4yk

You can notice three things here: first, matrix data is stored in a one-dimensional list. Second, the matrix is converted to a column-major order, since this corresponds to how it is stored in R. Finally, matrix dimensions are stored in the "dim" attribute.
Ragged (irregular) lists will be interpreted as R lists:

https://wolfram.com/xid/0g6yb9huzg5sn0q-6ws9h

The same is true for lists containing elements of different types:

https://wolfram.com/xid/0g6yb9huzg5sn0q-bvgcnh

When you have to give your R object some extra attributes, you must wrap what you would normally construct in an RObject head and add attributes wrapped in an RAttributes head:

https://wolfram.com/xid/0g6yb9huzg5sn0q-e9dnkc


https://wolfram.com/xid/0g6yb9huzg5sn0q-zq9k1

To perform the reverse operation and obtain a short form from the full internal form for a given expression representing some R object, you can use FromRForm:

https://wolfram.com/xid/0g6yb9huzg5sn0q-e15vrz

The list, which is the value of the "myAtt" attribute for this object, was returned in a slightly different form. This is consistent with scalars being treated by R as one-element vectors, but can become a problem if you always rely on automatic type identification:

https://wolfram.com/xid/0g6yb9huzg5sn0q-igjox


https://wolfram.com/xid/0g6yb9huzg5sn0q-e255tj

This problem and the recommended solution are discussed in more detail in the documentation page for RList.
Regardless of the way ToRForm interprets things, the cycle ToRForm to FromRForm should always return the same expression, except "dressing" scalars in extra lists.
Wolfram Research (2012), ToRForm, Wolfram Language function, https://reference.wolfram.com/language/RLink/ref/ToRForm.html.
Text
Wolfram Research (2012), ToRForm, Wolfram Language function, https://reference.wolfram.com/language/RLink/ref/ToRForm.html.
Wolfram Research (2012), ToRForm, Wolfram Language function, https://reference.wolfram.com/language/RLink/ref/ToRForm.html.
CMS
Wolfram Language. 2012. "ToRForm." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/RLink/ref/ToRForm.html.
Wolfram Language. 2012. "ToRForm." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/RLink/ref/ToRForm.html.
APA
Wolfram Language. (2012). ToRForm. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/RLink/ref/ToRForm.html
Wolfram Language. (2012). ToRForm. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/RLink/ref/ToRForm.html
BibTeX
@misc{reference.wolfram_2024_torform, author="Wolfram Research", title="{ToRForm}", year="2012", howpublished="\url{https://reference.wolfram.com/language/RLink/ref/ToRForm.html}", note=[Accessed: 20-June-2025
]}
BibLaTeX
@online{reference.wolfram_2024_torform, organization={Wolfram Research}, title={ToRForm}, year={2012}, url={https://reference.wolfram.com/language/RLink/ref/ToRForm.html}, note=[Accessed: 20-June-2025
]}