R – Vector

R programming is one of the most popular languages when it comes to data science, statistical computations or scientific research. R programming is widely used in machine learning and it is very efficient and user-friendly. It provides flexibility in doing big statistical operations with a few lines of code.

Vectors in R are the same as the arrays in C language which are used to hold multiple data values of the same type. One major key point is that in R the indexing of the vector will start from ‘1’ and not from ‘0’. We can create numeric vectors and character vectors as well.

Vectors-in-R

Types of vectors

Vectors are of different types which are used in R. Following are some of the types of vectors:

  • Numeric vectors
    Numeric vectors are those which contain numeric values such as integer, float, etc.



    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # R program to create numeric Vectors
      
    # creation of vectors using c() function.
    v1 <- c(4, 5, 6, 7)
      
    # display type of vector
    typeof(v1)
      
    # by using 'L' we can specify that we want integer values.
    v2 <- c(1L, 4L, 2L, 5L
      
    # display type of vector
    typeof(v2)

    chevron_right

    
    

    Output:

    [1] "double"
    [1] "integer"
  • Character vectors
    Character vectors contain alphanumeric values and special characters.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # R program to create Character Vectors
      
    # by default numeric values 
    # are converted into characters
    v1 <- c('geeks', '2', 'hello', 57
      
    # Displaying type of vector
    typeof(v1)

    chevron_right

    
    

    Output:

    [1] "character"
  • Logical vectors
    Logical vectors contain boolean values such as TRUE, FALSE and NA for Null values.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # R program to create Logical Vectors
      
    # Creating logical vector
    # using c() function
    v1 <- c(TRUE, FALSE, TRUE, NA)
      
    # Displaying type of vector
    typeof(v1)

    chevron_right

    
    

    Output:

    [1] "logical"

Creating a vector

There are different ways of creating vectors. Generally, we use ‘c’ to combine different elements together.

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to create Vectors
  
# we can use the c function
# to combine the values as a vector.
# By default the type will be double
X <- c(61, 4, 21, 67, 89, 2)
cat('using c function', X, '\n')
  
# seq() function for creating
# a sequence of continuous values.
# length.out defines the length of vector.
Y <- seq(1, 10, length.out = 5
cat('using seq() function', Y, '\n'
  
# use':' to create a vector 
# of continuous values.
Z <- 2:7
cat('using colon', Z)

chevron_right


Output:

using c function 61 4 21 67 89 2 
using seq() function 1 3.25 5.5 7.75 10 
using colon 2 3 4 5 6 7

Accessing vector elements

Accessing elements in a vector is the process of performing operation on an individual element of a vector. There are many ways through which we can access the elements of the vector. The most common is using the ‘[]’, symbol.



Note: Vectors in R are 1 based indexing unlike the normal C, python, etc format.

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to access elements of a Vector
  
# accessing elements with an index number.
X <- c(2, 5, 18, 1, 12)
cat('Using Subscript operator', X[2], '\n')
  
# by passing a range of values
# inside the vector index.
Y <- c(4, 8, 2, 1, 17)
cat('Using combine() function', Y[c(4, 1)], '\n')
  
# using logical expressions
Z <- c(5, 2, 1, 4, 4, 3)
cat('Using Logical indexing', Z[Z>4])

chevron_right


Output

Using Subscript operator 5 
Using combine() function 1 4 
Using Logical indexing 5

Modifying a vector

Modification of a Vector is the process of applying some operation on an individual element of a vector to change its value in the vector. There are different ways through which we can modify a vector:

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to modify elements of a Vector
  
# Creating a vector
X <- c(2, 7, 9, 7, 8, 2)
  
# modify a specific element
X[3] <- 1
X[2] <-9
cat('subscript operator', X, '\n')
  
# Modify using different logics.
X[X>5] <- 0
cat('Logical indexing', X, '\n')
  
# Modify by specifying 
# the position or elements.
X <- X[c(3, 2, 1)]
cat('combine() function', X)

chevron_right


Output

subscript operator 2 9 1 7 8 2 
Logical indexing 2 0 1 0 0 2 
combine() function 1 0 2

Deleting a vector

Deletion of a Vector is the process of deleting all of the elements of the vector. This can be done by assigning it to a NULL value.

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to delete a Vector
  
# Creating a Vector
M <- c(8, 10, 2, 5)
  
# set NULL to the vector
M <- NULL 
cat('Output vector', M)

chevron_right


Output:

Output vector NULL

Sorting elements of a Vector

sort() function is used with the help of which we can sort the values in ascending or descending order.

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to sort elements of a Vector
  
# Creation of Vector
X <- c(8, 2, 7, 1, 11, 2)
  
# Sort in ascending order
A <- sort(X)
cat('ascending order', A, '\n')
  
# sort in descending order 
# by setting decreasing as TRUE
B <- sort(X, decreasing = TRUE)
cat('descending order', B)

chevron_right


Output:

ascending order 1  2  2  7  8 11
descending order 11  8  7  2  2  1



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.