Last time we reviewed how R let’s you do operations on vectors. Now let’s get a sense for how we can access the elements of a vector:

### Access a single element of a vector

To get started, let’s define a vector called `x` that contains the numbers 10 to 20:

``````x = 10:20
``````

Here’s what’s in `x`:

``````> x
 10 11 12 13 14 15 16 17 18 19 20
``````

Now suppose that we want only the first element of `x`, which contains the number 10. How do we get it? We type `x`. Presto, we get back the first element of x:

``````> x
 10
``````

To access other elements, we just pass their number. Here’s the 9th element:

``````> x
 18
``````

You can also ask R for elements that are not there. For example, `x` has 10 elements. If we ask for element 20, we get:

``````> x
 NA
``````

What does this mean? Well, `NA` is how R says ’nothing here’. It’s telling you that there is nothing in the 20th element of x.

### Access multiple elements

Suppose we want to access the first 4 elements of `x`. That’s easy. To do that, we use the `:` symbol. Recall that `1:4` will create the numbers 1 to 4:

``````> 1:4
 1 2 3 4
``````

So to get the first 4 elements of `x`, we put `1:4` inside our brackets:

``````> x[1:4]
 10 11 12 13
``````

Or maybe we want elements 4, 5 and 6:

``````> x[4:6]
 13 14 15
``````

Sometimes we just want the beginning of a vector. For that the `head` function has your back. By default, `head` will show you the first 6 elements:

``````> head(x)
 10 11 12 13 14 15
``````

We can change the number of elements we get back by telling R how many we want like this:

``````> head(x, 2)
 10 11
``````

We get back the first 2 elements.

### Tail

The `tail` function works exactly like `head`, except it returns the end of the vector. Here’s the tail of `x`:

``````> tail(x)
 15 16 17 18 19 20
``````

You can also tell `tail` how many elements you want. Here are the last 3:

``````> tail(x, 3)
 18 19 20
``````

### Subset by condition

Sometimes we want to get the elements of a vector that satisfy some condition. For example, suppose we want all of the elements of `x` that are greater than 15. In R, that’s really easy.

First of all, we can ask R which elements of `x` are greater than 15. To do that, we type:

``````x > 15
``````

R will return a list of true/false statements. If the given element is greater than 15, we get `TRUE`. If not, we get `FALSE`. Here’s what I get:

``````  FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
``````

Now, the way R works, we can pass these true/false statements back to our vector x. That will keep the elements that are greater than 15. We do that by putting the condition statement `x > 15` inside brackets:

``````x[x > 15]
``````

Here’s what I get back:

`````` 16 17 18 19 20
``````

If we want to keep these values, we can dump them into another variable, say `y`:

``````y = x[x > 15]
``````

A lot of data analysis relies on this conditional type of access.

To get a feel for how it works, try playing around with other conditions. Here are the valid operators:

• `>`: greater than
• `<`: less than
• `==` equal to
• `!=`: not equal to

For example, all the elements of `x` equal to 15:

``````x[ x == 15 ]
``````

All the elements of `x` not equal to 15:

``````x[ x != 15 ]
``````

Try some combinations out ands see what happens!