 # R Beginner Tutorial – Vectors

Vectors are the most basic R data structure. We already know vectors can be of different classes: numeric, integer, complex, character and logical. Elements of a vector must be of the same type.

Let’s review how vectors compare to other data structures.

As seen on the image above, vectors are building blocks of other data structures. Matrices and arrays must contain vectors of the same type, while data frames and lists can contain vectors of different types.

## Creating a vector

We create a vector with the c() function.

``````> v1 = c(1, 2, 3)
> v1
 1 2 3

> v2 = c("I", "love", "R!")
> v2
 "I"    "love" "R!"
``````

We add elements to a vector by creating a new vector and inputing the first vector as the first element.

``````> v1 = c(1, 2, 3)
> v1
 1 2 3

> v2 = c(v1, 4)
> v2
 1 2 3 4
``````

## Nesting

Vectors are always flat, even if you nest them. Notice a nested vector returns the same result as a flat one.

``````> c(1, c(2, c(3, 4, 5)))
 1 2 3 4 5

> c(1, 2, 3, 4, 5)
 1 2 3 4 5
``````

## Accessing elements

We use in element index and [ ] brackets to access elements. Indexing in R starts with position 1.

```> c(1, c(2, c(3, 4, 5)))
 1 2 3 4 5

> v1 = c("Jan", "Feb", "Mar", "Apr", "May", "Jun")
> v1
 "Jan" "Feb" "Mar" "Apr" "May" "Jun"

> v1
 "Jan"

> v1
 "Mar"

> v1[c(1, 3)]
 "Jan" "Mar"```

## Dropping elements

Negative index drops an element.

```> v1 = c("Jan", "Feb", "Mar", "Apr", "May", "Jun")
> v1
 "Jan" "Feb" "Mar" "Apr" "May" "Jun"

> v1[-1]
 "Feb" "Mar" "Apr" "May" "Jun"

> v1[-3]
 "Jan" "Feb" "Apr" "May" "Jun"

> v1[c(-1, -3)]
 "Feb" "Apr" "May" "Jun"
```

## Sequences

We create sequences using colons, for example 3:15.

``````> # Creating a sequence from 3 to 15.
> s = 3:15
> s
  3  4  5  6  7  8  9 10 11 12 13 14 15

> # Creating a sequence from 3.3 to 15.3.
> s = 3.3:15.3
> s
  3.3  4.3  5.3  6.3  7.3  8.3  9.3 10.3 11.3 12.3 13.3 14.3 15.3``````

If end element doesn’t decimally match up to the first one, it’s  dropped from the sequence.

``````> # Creating a sequence from 3.3 to 15.1.
> s = 3.3:15.1
> s
  3.3  4.3  5.3  6.3  7.3  8.3  9.3 10.3 11.3 12.3 13.3 14.3
``````

## Vector operations

Two vectors of same length can be added, subtracted, multiplied or divided giving the result as a vector output.

``````> # Create two vectors.
> v1 = c(1, 2, 3, 4, 5)
> v2 = c(6, 7, 8, 9, 0)
> v1
 1 2 3 4 5
> v2
 6 7 8 9 0

> sum = v1 + v2
> sum
  7  9 11 13  5

> # Subtract two vectors.
> diff = v1 - v2
> diff
 -5 -5 -5 -5  5

> # Multiply two vectors.
> mltp = v1*v2
> mltp
  6 14 24 36  0

> # Divise two vectors.
> div = v2/v1
> div
 6.000000 3.500000 2.666667 2.250000 0.000000``````

## In a hurry?

Meanwhile, in a hurry? If you’re already running late, we recommend you head over to our two R crash courses:

For even more amazing tips check out our awesome ExcelOlympics YouTube channel!