Un conjunto de datos, como los ingresos mensuales de 10 empleados, el crédito de 5 cursos, los nombres de mis contactos, etc. se pueden almacenar en otro tipo de objetos llamado Vectores.
Un vector es un objeto particular que se diferencia de una variable simple ya que tiene cero, uno o más elementos. Como una variable, tiene un nombre.
Podemos obtener un vector digitando:
1:20
Nos mostrará: 1 2 3 4 5 6 7 8 9 10 ... 19 20
Si deseamos en una variable, podemos digitar:
z = 1:20
Al pedirle lo valores a z veremos que su contenido es la serie anterior.
Este es un vector. Pero es un vecor cuyos elementos han sido generados automáticamente.
Una forma simple de definir y dar valores a un vector es usando la siguiente sintaxis:
nomVector = c(v1, v2, ...)
donde v1, v2, ... pueden ser valores numéricos o cadena de caracteres encerrados entre comillas ("...").
Ejemplos:
(Recuerde que, en cada caso, digite el comando en el prompt (">") y debe presionar [Intro] para ingresar el dato)
(Recuerde también que, toda vez que desee ver el contenido de una variable o vector, debe digitar su nombre y presionar [Intro])
(Tome nota de que, si desea recuperar un comando ingresado previamente, presione flecha arriba hasta encontrar el comando deseado)
notas = c(1, 2, 4, 10, 20, 16, 5, 12, 11, 17, 14, 16)
y = c(120, 200, 180, 300, 220)
meses = c("Ene", "Feb", "Mar", "Abr", "May","Jun","Jul", "Ago", "Set")
m = "Ene Fen Mar Abr May Jun Jul Ago Set Oct Nov Dic"
Mientras el objeto meses es un vecor cuyos elementos son cadena de caracteres, el objeto m es una cadena de caracteres y no es un vector.
Podemos definir el vector ndias, que contenga el número de días de cada mes
ndias = c(31, 28, 31, 31, 31, 30, 31, 31, 30)
¿Cómo se modifica el valor de un elemento de un vector?
Vamos a modificar el número de días de Abril (elemento 4 de ndias).
ndias[4] = 30
¿Cómo se añade elementos a un vector?
meses = c(meses, "Oct", "Nov", "Dic")
ndias = c(ndias, 31, 30, 31)
¿Cómo se elimina el i-ésimo elemento de un vector?
Dada la variable notas (ingresada líneas arriba), deseamos eliminar la sétima nota que aparece como 5:
notas = notas[-7]
Si deseamos eliminar los tres primeros elementos de notas:
notas = notas[-1:-3]
Nota:
Si se quisiera definir un vector con elementos de 1 a 100 para ser usado como índices, podemos usar:
tindex = c(1:100)
Y ¿cómo sabemos si tiene 100 elementos? ¿Cómo saber si Meses y ndías tienen la misma cantidad de elementos?
Respuesta: Usamos la función length(...).
length(ndias)
length(meses)
length(tindex)
Podemos guardar en n la longitud de meses:
n = length(meses)
Otras formas de generar un vector: a=c(1,2,3,4,5,11:20) a x=1:20 x
Genera un vector de elementos cuyos valores empiezan en inic hasta to , incrementando de incr en incr. Si no se usa "by 0 incr", los incrementos son unitarios.
En consecuencia, tanto el comando "c" como "seq" nos permiten obtener vectores con valores que sieguen alguna secuencia.
Si se desea un vector personalizado, debemos ingresarlo manualmente.
Claro que sí.
Genera una muestra de n elementos extraídos del vector x. Los elementos pueden repetirse (rep=TRUE) o no (rep=FALSE).
Ejemplo
Otro ejemplo
Ahora extraeremos la muestra de cada vector nHijos = sample(x,30,rep=T) xIngre = sample(y, 30, rep=T)
Veamos ahora la función runif(...). Sintaxis runif(n, min=0,max=1) Descripción:
Genera n valores aleaorios entre min y max. Estos valores provienen de una función de distribución uniforme(lo veremos más tarde).
generemos 1000 números aleatorios entre 0 y 1 y veamos la frecuencia de repetición de cada valor. r = runif(1000,0,1) Digite la siguiente función que nos permitirá saber la frecuencia de los valores generados. hist(r)
Observe que el número de veces que se repite los valores tiende a ser la misma (varía en un rango de 80 a 120).
En la próxima sesión continuaremos con algunas aplicaciones interesantes usando vectores.
Siguiente