Un vector es una estructura de una sola dimensión que contiene elementos homogéneos. Podemos crear vectores usando la función c()
(combine). (Usa ?c
en consola, o busca c en el panel de ayuda para saber más).
Vamos a crear nuestros primeros vectores:
v = c(1, 2, 3, 4)
print(v)
## [1] 1 2 3 4
class(v)
## [1] "numeric"
w = c(1, 2, "3", 4)
print(w)
## [1] "1" "2" "3" "4"
class(w)
## [1] "character"
Es importante recordar que los vectores son homogéneos, por lo que pueden tener un sólo tipo de dato. Observa como el vector w
, al ser creado con un dato de tipo character, "3"
, ha convertido los elementos numeric (1 y 2) a character.
También puedes crear vectores con valores dentro de un rango usando :.
z = c(1, 2, 3:10) # Es lo mismo que c(1:10)
print(z)
## [1] 1 2 3 4 5 6 7 8 9 10
class(z)
## [1] "numeric"
¿Qué tipo de dato es el vector z
?
Finalmente, es posible combinar dos o más vectores:
## [1] -1 -2 -3 -4 1 2 3 4 5 6 7 8 9 10
O añadir nuevos elementos a un vector ya existente:
## [1] -1 -2 -3 -4 1 2 3 4 5 6 7 8 9 10
## [15] 1000
Ejercicio:
seq()
y su parámetro by=
.seq()
, crea un vector que vaya del 0.1 al 10, pero que tenga 100 elementos. Pista: Puedes usar tanto el parámetro by=
o el parámetro length.out
. ¡Consulta la ayuda!Al finalizar, comprueba si el valor 50
está en tu vector utilizando el operador %in%
.
Crea el siguiente vector:
## [1] 6
## [1] 390
Asignar nombres a los elementos del vector:
nombres_personas = c("Ernesto", "Andrés", "Carlos",
"Enrique", "Felipe", "Vicente")
# El vector de nombres lo asignamos al vector de edades
names(edades) = nombres_personas
edades
## Ernesto Andrés Carlos Enrique Felipe Vicente
## 67 65 71 53 57 77
Ejercicio: Calcula la media de las edades. Pista: puedes usar las funciones sum()
y length()
.
Podemos accesar a determinados valores del vector, según su posición en el. Para ello usamos la siguiente sintaxis:
edades[1] # El primer elemento del vector
## Ernesto
## 67
edades[2] # El segundo elmento del vector
## Andrés
## 65
edades[c(2, 3)] # Segundo y tercer elementos del vector
## Andrés Carlos
## 65 71
Podemos remover ciertos valores del vector según su posición. Para ello usamos el signo menos, -
.
edades[-1] # Se va Ernesto
## Andrés Carlos Enrique Felipe Vicente
## 65 71 53 57 77
edades[-2] # Se va Andrés
## Ernesto Carlos Enrique Felipe Vicente
## 67 71 53 57 77
edades[- c(2, 3)] # Se van Andrés y Carlos
## Ernesto Enrique Felipe Vicente
## 67 53 57 77
¿Cómo podemos saber qué personas son mayores de una n cantidad de años?
## Ernesto Andrés Carlos Enrique Felipe Vicente
## TRUE TRUE TRUE FALSE FALSE TRUE
Ahora podemos usar los corchetes cuadrados []
para conservar los valores que nos interesan, según la condición:
## Ernesto Andrés Carlos Vicente
## 67 65 71 77
Podemos preguntar también: ¿qué personas están entre los 55 y 65 años?
Para ello usamos dos condiciones y el operador lógico &
(puedes buscar ?"&"
para más información) que nos permita evaluarlas.
condicion_1 = edades >= 55 # Observa que usamos una condición =>, que significa mayor o igual
condicion_2 = edades <= 65 # En este caso usamos menor o igual
edades[ condicion_1 & condicion_2 ]
## Andrés Felipe
## 65 57
Ejercicio: ¿Qué personas son menores a los 55 años o mayores a los 65? Pista: En este caso tendrás que usar el operador lógico |
(caracter Alt + 124).
Para ordenar el vector, usamos la función sort()
:
## Enrique Felipe Andrés Ernesto Carlos Vicente
## 53 57 65 67 71 77
Otras funciones: ¿Qué hace cada una de las siguientes funciones?
mean(edades)
## [1] 65
median(edades)
## [1] 66
sd(edades)
## [1] 8.854377
var(edades)
## [1] 78.4
max(edades)
## [1] 77
min(edades)
## [1] 53
Ejercicio: ¿Cuál es el promedio de las edades sin contar a la persona de mayor edad?
Ahora vamos a utilizar datos reales para practicar lo visto hasta ahora. R contiene datasets precargados con los que podemos trabajar. En este caso vamos a utilizar el dataset PlantGrowth
, que contiene datos experimentales del crecimiento de plantas (midiendo su peso seco en \(g\)) bajo ciertas condiciones (puedes ejecuatar en consola ?PlantGrowth
para más información).
Por ahora sólo nos interesa tomar los datos de peso de las plantas, así que ejecuta lo siguiente:
Con los datos cargados en la variable peso_plantas
responde las siguientes preguntas:
¡Listo!
Puedes continuar hacia la siguiente sección.