c(2, 4, 5, 6, 3)[1] 2 4 5 6 3
x <- c(2, 4, 5, 6, 3)
class(x)[1] "numeric"
Para crear un vector en R, usaremos “c( )”. La creacion de vectores puede ser de varios tipos de datos.
Ejemplos:
c(2, 4, 5, 6, 3)[1] 2 4 5 6 3
x <- c(2, 4, 5, 6, 3)
class(x)[1] "numeric"
y <- c("Perú", "Colombia", "Argentina")
class(y)[1] "character"
z <- c(5L, "Perú", FALSE)
class(z)[1] "character"
Lo que hace es que cada elemento del vector tendrá un valor. Esto es util para la creación de diccionarios.
# Asignando nombres
v1 <- c(peru="0051", francia="0033", alemania="0039") #otra forma
v1 <- c("peru"="0051", "francia"="0033", "alemania"="0039")
v1 peru francia alemania
"0051" "0033" "0039"
# nombres de los elementos de v1
names(v1)[1] "peru" "francia" "alemania"
Si tenemos el nombre y su valor por separados, podemos juntarlos
codigos <- c("0051", "0033", "0039")
pais <- c("peru", "francia", "alemania")
names(codigos) <- pais
codigos peru francia alemania
"0051" "0033" "0039"
Sirva para generar secuencias regulares. Para esto usaremos “seq( )”
#Formas de generar una secuencia
seq(from=1, to=8)[1] 1 2 3 4 5 6 7 8
seq(1, 8)[1] 1 2 3 4 5 6 7 8
1:8[1] 1 2 3 4 5 6 7 8
Si queremos hacer una secuencia pero saltando numeros, usaremos lo siguiente:
#Formas de generar
seq(from=4, to=10, by=2)[1] 4 6 8 10
seq(4, 10, 2)[1] 4 6 8 10
Si queremos mostrar cierta cantidad de numeros en una secuencias, usaremos esto:
#Formas de generar
seq(from=1, to=10, length=4)[1] 1 4 7 10
seq(1, 10, , 4)[1] 1 4 7 10
Esta función siver para replicar valores que queremos.
#Repetir 4 veces el valor 1
rep(1, 4)[1] 1 1 1 1
Tambien podemos usar secuencias con repeticiones.
#Repite 3 veces la secuencia 4:5
rep(4:5, 3)[1] 4 5 4 5 4 5
Podemos repetir elementos de la secuencia.
#Repite cada elemento 2 veces
rep(1:4, each = 2)[1] 1 1 2 2 3 3 4 4
Podemos repetir elementos de la secuencia y todo eso repetirlo las veces que queramos.
#Repite cada elemento 2 veces y todo 2 veces
rep(1:4, times=2, each=2) [1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4
Para acceder un elemento del vector, usaremos “[ ]”. En R, el primer elemento es el número 1, el segundo, número 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
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
#Agregando un elemento a un vector
v3 <- c(4, 3, 5)
elemento <- 6
#Podemos actualizar v3 o crear una nuevo vector donde este agregado el elemento
v3 <- c(v3, elemento)
v3[1] 4 3 5 6
#Agregando vectores a un vector
v4 <- c(3, "Lima", 10.5)
vector_nuevo1 <- c(0:2)
vector_nuevo2 <- c("Cusco", "Trujillo")
#Podemos actualizar v3 o crear una nuevo vector donde esten agregados los nuevos vectores
v4 <- c(v4, vector_nuevo1, vector_nuevo2)
v4[1] "3" "Lima" "10.5" "0" "1" "2" "Cusco"
[8] "Trujillo"
v5 <- c(20, 4, 100, 31, 57, 3)
# Ordena en orden creciente
sort(v5)[1] 3 4 20 31 57 100
# Retorna los índices
order(v5)[1] 6 2 1 4 5 3
# Ordenamiento usando los índices
v5[order(v5)][1] 3 4 20 31 57 100
# Índices ordenados del vector
rank(v5)[1] 3 2 6 4 5 1
# Valor máximo
max(v5)[1] 100
# Índice del máximo
which.max(v5)[1] 3
# Máximo usando el índice
v5[which.max(v5)][1] 100
# Valor mínimo
min(v5)[1] 3
# Índice del valor mínimo
which.min(v5)[1] 6
Usamos las opereciones basicas, presentadas en anteriores capítulos, pero con vectores.
Ejemplos:
v6 <- c(34, 10, 4, 21, 12)
#Multiplicación
100*v6[1] 3400 1000 400 2100 1200
#Suma
200+v6[1] 234 210 204 221 212
Cuando hay 2 vectores, se realiza término a término si tienen igual longitud
v7 <- c(2, 4, 6, 8, 10)
v8 <- c(1, 3, 5, 7, 11)
v7+v8[1] 3 7 11 15 21
v7-v8[1] 1 1 1 1 -1
v7*v8[1] 2 12 30 56 110
v7/v8[1] 2.0000000 1.3333333 1.2000000 1.1428571 0.9090909
v7**v8[1] 2 64 7776 2097152 100000000000
OBS: Si no son del mismo tamaño, el más corto se “repite”
v9 <- c(1, 2, 3)
v10 <- c(10, 20, 30, 40, 50)
v11 <- v9+v10Warning in v9 + v10: longitud de objeto mayor no es múltiplo de la longitud de
uno menor
v11[1] 11 22 33 41 52