RVector


represents an internal form of an R vector in RLink.

DetailsDetails

  • Possible values for type are: "integer", "double", "complex", "logical", and "character".
  • data must be a one-dimensional list, whose elements must be all of the same type:
  • "integer"Integer
    "double"Real
    "complex"Complex
    "logical"True|False
    "character"String
  • In addition, missing elements are allowed, represented by Missing[].
  • attributes must have the form RAttributes["name1":> value1,]], where values of attributes can be any R objects handled by RLink.
  • Multidimensional R arrays are represented by , with the dimensions attribute "dim" necessarily present among the vector attributes.

ExamplesExamplesopen allclose all

Basic Examples  (10)Basic Examples  (10)

In[1]:=
Click for copyable input

This represents the vector of integers:

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

Unless there are some extra attributes present in a given R vector, you can usually use a simpler and more familiar Wolfram Language notation, representing vectors as (possibly nested) lists, for all RLink-related operations, so the above would just be equivalent to:

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

The form involving is, however, more "fundamental", since all expressions are translated into this form before being sent to R, and from this form when obtained from R. The "direct translation" is done with the function ToRForm:

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

You can also see how multidimensional arrays are formed:

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

This represents an array of real numbers:

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

Here is a string (character) array:

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

A complex matrix:

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

A logical vector:

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

An array with missing elements:

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

Note that vectors can only contain elements of the same native type. The RLink automatic type detection will interpret a list with elements of different types as an R list (RList), rather than an R vector:

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

You can send your vectors to R in this form as well:

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

In fact, this is the actual form used to send a vector to R, even when it is initially expressed in more succinct notation ({1,2,3} here).

Add more attributes (properties) to your vector:

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

The result is expressed in the Wolfram Language:

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

Note the RObject head. In contrast to heads used for "internal" RLink representation of R objects, such as, RList, and RNull, the head RObject represents the "final" Wolfram Language-side version of an R object, being just a generic container. You can use ToRForm to see the "internal" representation, which involves , since the resulting object is still a vector:

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