## Introduction

In the previous post, we learnt about the basic data types in R. IN this post, we will:

- understand the concept of vectors
- learn to create vectors of different data types

## Vectors

Vector is the most basic data structure in R. It is a sequence of elements of the same data type. If the elements are of different data types, they will be coerced to a common type that can accommodate all the elements. Vectors are generally created using `c()`

(concatenate function), although depending on the data type of vector being created, other methods can be used.

## Numeric Vector

We will create a numeric vector using `c()`

but you can use any function that creates a sequence of numbers. After that we will use `is.vector()`

to check if it is a vector and `class`

to check the data type.

```
# create a numeric vector
num_vect <- c(1, 2, 3)
# display the vector
num_vect
```

`## [1] 1 2 3`

```
# check if it is a vector
is.vector(num_vect)
```

`## [1] TRUE`

```
# check data type
class(num_vect)
```

`## [1] "numeric"`

Let us look at other ways to create a sequence of numbers. We leave it as an exercise to the reader to understand the functions using `help`

.

```
# using colon
vect1 <- 1:10
vect1
```

`## [1] 1 2 3 4 5 6 7 8 9 10`

```
# using rep
vect2 <- rep(1, 5)
vect2
```

`## [1] 1 1 1 1 1`

```
# using seq
vect3 <- seq(10)
vect3
```

`## [1] 1 2 3 4 5 6 7 8 9 10`

## Integer Vector

Creating an integer vector is similar to numeric vector except that we need to instruct R to treat the data as `integer`

and not `numeric`

or `double`

. We will use the same methods we used for creating numeric vectors. To specify that the data is of type `integer`

, we suffix the number with `L`

.

```
# integer vector
int_vect <- c(1L, 2L, 3L)
int_vect
```

`## [1] 1 2 3`

```
# check data type
class(int_vect)
```

`## [1] "integer"`

```
# using colon
vect1 <- 1L:10L
vect1
```

`## [1] 1 2 3 4 5 6 7 8 9 10`

```
# using rep
vect2 <- rep(1L, 5)
vect2
```

`## [1] 1 1 1 1 1`

```
# using seq
vect3 <- seq(10L)
vect3
```

`## [1] 1 2 3 4 5 6 7 8 9 10`

## Character Vector

A character vector may contain a single character, a word or a group of words. The elements must be enclosed in single or double quotations.

```
# character vector
greetings <- c("hello", "good morning")
greetings
```

`## [1] "hello" "good morning"`

```
# check data type
class(greetings)
```

`## [1] "character"`

## Logical Vector

A vector of logical values will either contain `TRUE`

or `FALSE`

or both.

```
# logical vector
vect_logic <- c(TRUE, FALSE, TRUE, TRUE, FALSE)
vect_logic
```

`## [1] TRUE FALSE TRUE TRUE FALSE`

```
# check data type
class(vect_logic)
```

`## [1] "logical"`

In fact, you can create an `integer`

vector and coerce it to type `logical`

.

```
# integer vector
int_vect <- rep(0L:1L, 3)
int_vect
```

`## [1] 0 1 0 1 0 1`

```
# coerce to logical vector
log_vect <- as.logical(int_vect)
log_vect
```

`## [1] FALSE TRUE FALSE TRUE FALSE TRUE`

```
# check data type
class(log_vect)
```

`## [1] "logical"`