The article is about creating vectors in R language. You will also learn about quick and short methods of subsetting the vectors in R and the vectorization of vectors
Creating Vectors in R Using c()
Function
The c()
function can be used for creating vectors of objects in R. 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
Creates 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 the 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 the R Language are vectorized. The operations ( +, -, *, and / ) are performed element by element. For example,
x <- 1 : 4 y <- 6 : 9 # Arithmetics x + y x - y x * y x / y # Logical Operation x >= 2 x < 3 y == 8
Without vectorization (as in other languages) one has to use a for loop for performing element-by-element operations on say vectors.
Subsetting Vectors in R Language
Subsetting in the R Language can be done easily. Subsetting vectors means 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 the 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 )
Learn more about Vectors