Los vectores son los tipos de datos más básicos en R. Incluso un solo objeto creado también se almacena en forma de vector. Los vectores no son más que arrays tal como se definen en otros idiomas. Los vectores contienen una secuencia de tipos de datos homogéneos. Si se dan valores mixtos, convierte automáticamente los datos de acuerdo con la precedencia. Hay varias operaciones que se pueden realizar en vectores en R.
Creando un vector
Los vectores se pueden crear de muchas maneras, como se muestra en el siguiente ejemplo. Lo más habitual es el uso de la función ‘c’ para combinar diferentes elementos entre sí.
Python3
# Use of 'c' function # to combine the values as a vector. # by default the type will be double X <- c(1, 4, 5, 2, 6, 7) print('using c function') print(X) # using the seq() function to generate # a sequence of continuous values # with different step-size and length. # length.out defines the length of vector. Y <- seq(1, 10, length.out = 5) print('using seq() function') print(Y) # using ':' operator to create # a vector of continuous values. Z <- 5:10 print('using colon') print(Y)
Producción:
using c function 1 4 5 2 6 7 using seq function 1.00 3.25 5.50 7.75 10.00 using colon 5 6 7 8 9 10
Acceso a elementos vectoriales
Se puede acceder a los elementos vectoriales de muchas maneras. El más básico es usar el operador de subíndice ‘[]’. Las siguientes son las formas de acceder a los elementos de Vector:
Nota: los vectores en R están indexados en base a 1, a diferencia del formato normal de C, python, etc., donde la indexación comienza desde 0.
Python3
# Accessing elements using the position number. X <- c(2, 5, 8, 1, 2) print('using Subscript operator') print(X[2]) # Accessing specific values by passing # a vector inside another vector. Y <- c(4, 5, 2, 1, 7) print('using c function') print(Y[c(4, 1)]) # Logical indexing Z <- c(5, 2, 1, 4, 4, 3) print('Logical indexing') print(Z[Z>3])
Producción:
using Subscript operator 5 using c function 1 4 Logical indexing 5 4 4
Modificando un vector
Los vectores se pueden modificar usando diferentes variaciones de indexación que se mencionan en el siguiente código:
Python3
# Creating a vector X <- c(2, 5, 1, 7, 8, 2) # modify a specific element X[3] <- 11 print('Using subscript operator') print(X) # Modify using different logics. X[X>9] <- 0 print('Logical indexing') print(X) # Modify by specifying the position or elements. X <- X[c(5, 2, 1)] print('using c function') print(X)
Producción:
Using subscript operator 2 5 11 7 8 2 Logical indexing 2 5 0 7 8 2 using c function 8 5 2
Eliminación de un vector
Los vectores se pueden eliminar reasignándolos como NULL. Para borrar un vector usamos el operador NULL.
Python3
# Creating a vector X <- c(5, 2, 1, 6) # Deleting a vector X <- NULL print('Deleted vector') print(X)
Deleted vector NULL
Operaciones aritmeticas
Podemos realizar operaciones aritméticas entre 2 vectores. Estas operaciones se realizan por elementos y, por lo tanto, la longitud de ambos vectores debe ser la misma.
Python3
# Creating Vectors X <- c(5, 2, 5, 1, 51, 2) Y <- c(7, 9, 1, 5, 2, 1) # Addition Z <- X + Y print('Addition') print(Z) # Subtraction S <- X - Y print('Subtraction') print(S) # Multiplication M <- X * Y print('Multiplication') print(M) # Division D <- X / Y print('Division') print(D)
Producción:
Addition 12 11 6 6 53 3 Subtraction -2 -7 4 -4 49 1 Multiplication 35 18 5 5 102 2 Division 0.7142857 0.2222222 5.0000000 0.2000000 25.5000000 2.0000000
Clasificación de vectores
Para ordenar usamos la función sort() que ordena el vector en orden ascendente por defecto.
Python3
# Creating a Vector X <- c(5, 2, 5, 1, 51, 2) # Sort in ascending order A <- sort(X) print('sorting done in ascending order') print(A) # sort in descending order. B <- sort(X, decreasing = TRUE) print('sorting done in descending order') print(B)
Producción:
sorting done in ascending order 1 2 2 5 5 51 sorting done in descending order 51 5 5 2 2 1
Publicación traducida automáticamente
Artículo escrito por KaranGupta5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA