The R Language Definition is handy for answering these types of questions:

R has three basic indexing operators, with syntax displayed by the following examples

`x[i] x[i, j] x[[i]] x[[i, j]] x$a x$"a"`

For vectors and matrices the

`[[`

forms are rarely used, although they have some slight semantic differences from the`[`

form (e.g. it drops any names or dimnames attribute, and that partial matching is used for character indices). When indexing multi-dimensional structures with a single index,`x[[i]]`

or`x[i]`

will return the`i`

th sequential element of`x`

.For lists, one generally uses

`[[`

to select any single element, whereas`[`

returns a list of the selected elements.The

`[[`

form allows only a single element to be selected using integer or character indices, whereas`[`

allows indexing by vectors. Note though that for a list, the index can be a vector and each element of the vector is applied in turn to the list, the selected component, the selected component of that component, and so on. The result is still a single element.