##Operaciones con Vectores El primer tipo de objetos que manejaremos es el vector, este es una colección ordenada de elementos de un mismo tipo. Existen varias maneras de escribir un vector.
Opción 1 “:” Esta opción nos permite hacer un vector entre dos numeros y rellenar su intervalo, esto puede ser en orden ascendente como descendente mediante la función de concatenación “c( )”.
v1 = 1:10
v2 = 10:1
v3 = 1.5:7.5
v4 = c(1,2,4,3)
v5 = c(1:5)
v6 = c(1:5,2,4,-3)
print(v1)
## [1] 1 2 3 4 5 6 7 8 9 10
print(v2)
## [1] 10 9 8 7 6 5 4 3 2 1
print(v3)
## [1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5
print(v4)
## [1] 1 2 4 3
print(v5)
## [1] 1 2 3 4 5
print(v6)
## [1] 1 2 3 4 5 2 4 -3
Opción 2 “seq()” Tenemos formas adicionales de crear vectores. Una de las más comunes es utilizando la función “seq(a,b,c)”, que genera secuencias de números reales, donde el primer elemento indicaría el principio de la secuencia, el segundo el final y el tercero el incremento que se debe usar para generar la secuencia.
El argumento along crea un vector con los indices del vector al que llamemos.
v1 = seq(1,10,2)
v2 = seq(from = 1, to = 20 , by = 2)
v3 = seq(10,10,2)
v4 = seq(from = 1, to = 10 , by = 2)
x <- c(1,2,1,3,4)
v5 = seq(along = x)
y <-25
v6 = seq(along=y)
print(v1)
## [1] 1 3 5 7 9
print(v2)
## [1] 1 3 5 7 9 11 13 15 17 19
print(v3)
## [1] 10
print(v4)
## [1] 1 3 5 7 9
print(v5)
## [1] 1 2 3 4 5
print(v6)
## [1] 1
Opción 3 “rep(a,b)” La función rep(a,b) crea un vector con “b” elementos idénticos al valor " a"
# repetimos el elemento 3 diez veces
rep(3,10)
## [1] 3 3 3 3 3 3 3 3 3 3
#repetimos cada elemento del vector "a" dos veces
a=1:5; rep(a,2)
## [1] 1 2 3 4 5 1 2 3 4 5
#repetimos cada elemento del vector 3 veces de 5 en 5
rep(1:3,rep(5,3))
## [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
y<-rep(2,5)
# repetimos cada elemento de "a" tantas veces como indica "y"
rep(a,y)
## [1] 1 1 2 2 3 3 4 4 5 5
rep(a,a)
## [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
x<-2
#repetimos el elemento x 5 veces
rep(x,length=5)
## [1] 2 2 2 2 2
Opción 3 “sequence()” La función “sequence( )” que crea una secuencias de enteros. Cada secuencia terminar´a en el número especificado como argumento.
sequence(c(3,2))
## [1] 1 2 3 1 2
# Hemos creado una secuencia del vector 1:3 y del 1:2
sequence(c(5,3))
## [1] 1 2 3 4 5 1 2 3
# Hemos creado una secuencia del vector 1:5 y del 1:3
sequence(c(c(2,3),3))
## [1] 1 2 1 2 3 1 2 3
# Hemos creado una secuencia del vector 1:2, 1:3 y del 1:3
Opción 4 “sequence()” La función “gl( )” (generador de niveles) genera series regulares de factores. Tiene la forma “gl(a, b)” donde “a” es el numero de niveles (o clases) y “b” es el número de réplicas en cada nivel. Se pueden usar dos opciones: “length” para especificar el número de datos producidos, y “labels” para especificar los nombres de los factores
# Repetimos los dos niveles 6 veces con la etiqueta Hombre y Mujer
gl(2, 6, labels = c("Hombre", "Mujer"))
## [1] Hombre Hombre Hombre Hombre Hombre Hombre Mujer Mujer Mujer Mujer
## [11] Mujer Mujer
## Levels: Hombre Mujer
# 20 elementos de dos niveles primero uno y luego el otro
gl(2, 1, 20)
## [1] 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
## Levels: 1 2
# 20 elementos de dos niveles los dos a la vez
gl(2, 2, 20)
## [1] 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2
## Levels: 1 2
Opción 5 “expand.grid()” Crea una tabla de datos con todas las combinaciones posibles de los elementos de los vectores o factores que proporcionemos como argumentos.
expand.grid(edad=c(36,25), peso=c(75,60), sexo=c("Hombre","Mujer"))
## edad peso sexo
## 1 36 75 Hombre
## 2 25 75 Hombre
## 3 36 60 Hombre
## 4 25 60 Hombre
## 5 36 75 Mujer
## 6 25 75 Mujer
## 7 36 60 Mujer
## 8 25 60 Mujer
# Crea todas las combinaciones posibles