DataScience+ An online community for showcasing R & Python tutorials. It operates as a networking platform for data scientists to promote their talent and get hired. Our mission is to empower data scientists by bridging the gap between talent and opportunity.

How to Manipulate the Vectors

  • Published on July 26, 2015 at 1:19 pm
  • Updated on October 30, 2017 at 3:38 pm

Vectors can be manipulated by adding other elements such as numbers and characters on specific positions of the vector. In the example below, we add the element 11 on the 4th position of the vector.

Insert 11 after 4th position of the vector

x <- c(2,7,12,25,9)
x <- c(x[[1:4]],11,x[[4:5]])
2 7 12 25 11 25 9

Also, you can add or subtract from elements of vectors. For example, if you want to add 2 value in the whole vector or on specific elements of vectors do as follow.

Add 1 on each element

x <- c(2,7,12,25,9)
x + 2
4 9 14 27 14 28 12

Add 2 on specific elements of vector

9 14

all() and any() functions

The functions all() and any() could be used with the vectors. In some cases when the vector is large and contain many elements you want to know whether any or all of their elements are TRUE.

For example, you have a numeric vector x which contain 10 numbers from 1 to 10, use the function any(x==5) to know if any of numbers is 5, or all(x==5) if all numbers in vector are 5.

Numeric vector from 1 to 10


Is any of numbers 5


Are all numbers 5


subset(), which(), and ifelse()

The subset(), which() and ifelse() are probably the most commonly used functions in R.

One way to filter elements in the vector is to use subset() function.
Let's first create vector x.

x <- c(5, 4:8, 12)
5  4  5  6  7  8 12

Now we want to subset elements which are smaller then 6.

y <- subset(x, x < 6)
5 4 5

Now let use the function which() to identify a position in the vector.

which(x > 8)

The function ifelse has two statements to execute. If condition is TRUE the first statement is executed. If condition is FALSE, the second statement is executed.
For example if x < 6 make 1, otherwise make 0.

ifelse(x < 6, 1, 0)
1 1 1 0 0 0 0

Also you can do something like this:

ifelse(x < 6, 1, x)
1  1  1  6  7  8 12

Accessing rows, columns or elements in a vector and a matrix

When you work with vectors you might be interested to identify an element or a set of elements within the vector. For example, you want to show the element in the 2nd and 5th position of the vector. The code used is x[[c(,)]]. Follow the example below.

Create a numeric vector:

x <- c(1, 5, 7, 2, 3, -4, 12)

Identify 2nd and 5th position

5 3

Identify from 2nd position up to 5

5 7 2 3

To assess row and columns in matrices use this function x[row,column]. In example below I will create a matrix by using the function rnorm() which is a function to create random numbers from normal distribution.

Let create a matrix with 12 random numbers in 4 rows

x <- matrix(rnorm(12), nrow=4)
      [,1]       [,2]       [,3]
[1,] -0.9930798  0.1125335 -0.5039369
[2,]  0.4793895 -0.8137567 -0.6098343
[3,] -0.2082529  0.2085910 -0.9223005
[4,] -0.1511682 -0.1885532  0.6812309

Now we want to find the number in 3rd row and 2nd column


Also, you can show entire column or row. Using the matrix from example above we now identify entire second column or row.

0.1125335 -0.8137567  0.2085910 -0.1885532

For the rows we use code below:

-0.1511682 -0.1885532  0.6812309

Adding and Deleting elements from the List

Another interesting function dim() which is used to identify the number of rows and columns in matrices.

4 3

Adding elements to the list is similar as you will add variables in the data frame. However, today we will show how to add elements in the list. Elements can be numbers or character. You can add more than one element in the list.

First let create a sample list:

y <- list(job="researcher", age="55")

Now lets add another element to current list:

y$name <- "Andre"

Let see now how you can delete an element by using function NULL from the first sample list.

y$age <- NULL

If you have any question related to vectors please post a comment below.