## Creating, Subsetting, and Vectorization in R

**Creating Vectors in R Using **`c()`

Function

`c()`

FunctionThe `c()`

function can be used to create vectors of objects. This function concatenates the values having one dimension (either row or column matrix in a sense). The following are some examples related to creating different types of vectors in R.

# Numeric vector x <- c(1, 2, 5, 0.5, 10, 20, pi) # Logical vector x <- c(TRUE, FALSE, FALSE, T, T, F) # Character vector x <- c("a", "z", "good", "bad", "null hypothesis") # Integer vector x <- 9 : 29 # (colon operator is used) x <- c(1L, 5L, 0L, 15L) # Complex vector x <- c(1+0i, 2+4i, 0+0i)

**Using **`vector()`

Function

`vector()`

FunctionCreates a vector of $n$ elements with a default value of zero for numeric vector, an empty string for character vector, FALSE for logical vector, and 0+0i for complex vector.

# Numeric vector of lenght 10 (default is zero) x <- vector("numeric", length = 10) # Integer vector of length 10 (default is integer zeros) x <- vector("integer", length = 10) # Character vector of length 10 (default is empty string) x <- vector("character", length = 10) # Logical vector of length 10 (default is FALSE) x <- vector("logical", length = 10) # Complex vector of length 10 (default is 0+0i) x<- vector("complex", length=10)

**Creating Vectors with Mixed objects**

When different objects are mixed in a vector, coercion occurs, that is, the data type of vector changes intelligently.

The following are examples

# coerce to character vector y <- c(1.2, "good") y <- c("a", T) # coerce to a numeric vector y <- c(T, 2)

From the above examples, the coercion will make each element of the vector of the same class.

**Explicitly Coercing Objects to Other Class**

Objects can be explicitly coerced from one class to another class using `as.character()`

, `as.numeric()`

, `as.integer()`

, `as.complex()`

, and `as.logical()`

functions. For example;

x <- 0:6 as.numeric(x) as.logical(x) as.character(x) as.complex(x)

Note that non-sensual coercion results in NAs (missing values). For example,

x <- c("a", "b", "c") as.numeric(x) as.logical(x) as.complex(x) as.integer(x)

**Vectorization in R**

Many operations in R Language are vectorized. The operations ( +, -, *, and / ) are performed element by element. For example,

x <- 1 : 4 y <- 6 : 9 x + y x - y x * y x / y x >= 2 x < 3 y == 8

Without vectorization (as in other languages) one has to use for loop for performing element by element operation on say vectors.

**Subsetting Vectors in R Language**

By subsetting vectors means that extracting the elements of a vector. For this purpose square brackets ([ ]) are used. For example;

x <- c(1, 6, 10, -15, 0, 13, 5, 2, 10, 9) # Subsetting Examples x[1] # extract first element of x vecotr x[1:5] # extract first five values of x x[-1] # extract all values except first x[x > 2] # extracts all elements that are greater than 2 head(x) # extracts first 6 elements of x tail(x) # extracts last 6 elements of x x[x > 5 & x < 10] # extracts elements that are greater than 5 but less than 10

One can use subset() function to extract the desired element using logical operators, For example,

subset(x, x > 5) subset(x, x > 5 & x < 10) subset(x, !x < 0 )