4  Vectores

4.1 Acceso a los elementos del vector

Para acceder un elemento del vector, usaremos “[ ]”. En R, el primer elemento es el numero 1, el segundo, numero 2 y asi los demas elementos.

#Acceder al elemento 1
v2 <- c(3, 4.5, 100, 23, 19.8, 3)
v2[1]
[1] 3
#Acceder al elemento 2
v2 <- c(3, 4.5, 100, 23, 19.8, 3)
v2[2]
[1] 4.5
#Acceder valores desde un punto a otro
v2 <- c(3, 4.5, 100, 23, 19.8, 3)
v2[3:5]
[1] 100.0  23.0  19.8
#Selección de solo 2 índices específicos
v2 <- c(3, 4.5, 100, 23, 19.8, 3)
v2[c(1,3)]
[1]   3 100

Si queremos descartar elementos del vector, sera usar “[-x]”.

#Eliminar el primer elemento
v2 <- c(3, 4.5, 100, 23, 19.8, 3)
v2[-1]
[1]   4.5 100.0  23.0  19.8   3.0
#Acceder valores desde un punto a otro
v2 <- c(3, 4.5, 100, 23, 19.8, 3)
v2[-2:-4]
[1]  3.0 19.8  3.0
#Selección de solo 2 índices específicos
v2 <- c(3, 4.5, 100, 23, 19.8, 3)
v2[-c(2,4)]
[1]   3.0 100.0  19.8   3.0

4.1.1 Algunas funciones extras

v2 <- c(3, 4.5, 100, 23, 19.8, 3)
# Longitud (tamaño) de un vector
length(v2)
[1] 6
# Último elemento del vector
v2[length(v2)]
[1] 3
# Vector en reversa
rev(v2)
[1]   3.0  19.8  23.0 100.0   4.5   3.0
# Elementos únicos del vector
unique(v2)
[1]   3.0   4.5 100.0  23.0  19.8

4.2 Ordenamiento del vector

v3 <- c(20, 4, 100, 31, 57, 3)
# Ordena en orden creciente
sort(v3)
[1]   3   4  20  31  57 100
# Retorna los indices
order(v3)
[1] 6 2 1 4 5 3
# Ordenamiento usando los indices
v3[order(v3)]
[1]   3   4  20  31  57 100
# Índices ordenados del vector
rank(v3)
[1] 3 2 6 4 5 1
# Valor maximo
max(v3)
[1] 100
# Índice del maximo
which.max(v3)
[1] 3
# Maximo usando el indice
v3[which.max(v3)]
[1] 100
# Valor minimo
min(v3)
[1] 3
# Índice del valor minimo
which.min(v3)
[1] 6

4.3 Vector de valores logicos

Si encontramos todos(all) los valores logico de entrada se denotara como True, al igual para algun(any)

# Vector de valores logicos
z <- c(TRUE, TRUE, FALSE)
any(z)   
[1] TRUE
all(z)   
[1] FALSE

4.4 Aritmetica de vectores

Usamos las opereciones basicas, presentadas en anteriores capitulos, pero con vectores.

Ejemplos{.underline}:

v4 <- c(34, 10, 4, 21, 12)
#Multiplicación
100*v4
[1] 3400 1000  400 2100 1200
#Suma
200+v4
[1] 234 210 204 221 212

Cuando hay 2 vectores, se realiza termino a termino si tienen igual longitud

v5 <- c(2, 4, 6, 8, 10)
v6 <- c(1, 3, 5, 7, 11)
v5+v6
[1]  3  7 11 15 21
v5-v6
[1]  1  1  1  1 -1
v5*v6
[1]   2  12  30  56 110
v5/v6
[1] 2.0000000 1.3333333 1.2000000 1.1428571 0.9090909
v5**v6
[1]            2           64         7776      2097152 100000000000

OBS: Si no son del mismo tamaño, el mas corto se “repite”

v7 <- c(1, 2, 3)
v8 <- c(10, 20, 30, 40, 50)
v9 <- v7+v8
Warning in v7 + v8: longitud de objeto mayor no es múltiplo de la longitud de
uno menor
v9
[1] 11 22 33 41 52