Operaciones con Vectores

Creando Vectores

1:10
##  [1]  1  2  3  4  5  6  7  8  9 10
10:1
##  [1] 10  9  8  7  6  5  4  3  2  1
1.5:7.5
## [1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5
c(1,2,4,3)
## [1] 1 2 4 3
c(1:5)
## [1] 1 2 3 4 5
c(1:5,2,4,-3)
## [1]  1  2  3  4  5  2  4 -3
seq(1,10,12)
## [1] 1


Formas Adicionales de Crear Vectores

El primer elemento indica el principio de la secuencia, el segundo el final y el tercero el incremento que se debe usar para generar la secuencia.

seq(1,10,2)
## [1] 1 3 5 7 9
seq(from = 1, to = 20, by =2)
##  [1]  1  3  5  7  9 11 13 15 17 19
seq(1,10,2)
## [1] 1 3 5 7 9
seq(from = 1, to = 10, by =2)
## [1] 1 3 5 7 9
# 6 elementos
seq(from = 1, to = 10, length =6)
## [1]  1.0  2.8  4.6  6.4  8.2 10.0
#Con el argumento along se crea un vector con los indices del vector llamado:
x<-c(1,2,1,3,4)
seq(along=x)
## [1] 1 2 3 4 5
y<-25
seq(along=y)
## [1] 1

La función “rep(a, b)” que crea un vector con “b” elementos idénticos al valor “a”.

# Repetir el elemento 3 diez veces
rep(3,10)
##  [1] 3 3 3 3 3 3 3 3 3 3
# Repetir el vector "a" 2 veces
a=1:5; rep(a,2)
##  [1] 1 2 3 4 5 1 2 3 4 5
# Repetir 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)
# Rpetir 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

# Repetir el elemento "x" 5 veces
rep(x,length=5)
## [1] 2 2 2 2 2

La función “sequence( )” que crea una secuencias de enteros. Cada secuencia terminará en el número especificado como argumento.

sequence(c(3,2))
## [1] 1 2 3 1 2
sequence(c(5,3))
## [1] 1 2 3 4 5 1 2 3
sequence(c(c(2,3),3))
## [1] 1 2 1 2 3 1 2 3

La función “gl( )” (generador de niveles) genera series regulares de factores. Tiene la forma “gl(a, b)” donde “a” es el número 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.

# Repetir 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

Grid

Finalmente, “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

c("Hola", "Adios")
## [1] "Hola"  "Adios"
c(1, 1+2i)
## [1] 1+0i 1+2i
c(1-1i, 2)
## [1] 1-1i 2+0i
dias.semana=c("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo")

Una opción de R es que podemos asignar nombres a los elementos de un vector mediante la función “names”(también se podrá utilizar para nombrar cualquier objeto).

x<-1:7

x
## [1] 1 2 3 4 5 6 7
names(x)<-c("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo")

x
##     Lunes    Martes Miercoles    Jueves   Viernes    Sabado   Domingo 
##         1         2         3         4         5         6         7

También podemos conocer o cambiar el modo o tipo de los elementos que forman el vector mediante la función “mode” (tomar ́ıa los valores: logical, numeric, complex, character, null, list, function, graphics, expression, name, frame, raw y unknown).

y<-seq(from=3, to=11, by=2)

y
## [1]  3  5  7  9 11
mode(y)
## [1] "numeric"
# Cmabiar 'y' a complejo
mode(y)<-"complex"
y
## [1]  3+0i  5+0i  7+0i  9+0i 11+0i