En esta lección aprenderá sobre vectores, la estructura de datos mas simple y común en R.
Este material esta basado en la leccion de “Basic_building_blocks” de “R Programming”, paquete swirl.Author: Nick Carchedi, Organization: JHU Biostat, Version: 2.2.0.
Comencemos ahora!
Los vectores pueden ser de dos tipos: vectores atómicos y listas. Los vectores atómicos contienen 1 solo tipo de datos (número entero), mientras que las listas pueden contener multiples tipos de datos (texto, número real, número entero). Primero comenzaremos con los vectores atómicos.
En la lección anterior vimos como crear vectores de tipo numérico. Ahora, veremos otros tipos de vectores incluyendo lógicos, de caracteres, enteros, y complejos.
Los vectores lógicos contienen valores TRUE, FALSE, y NA (para ‘no disponible’). Estos valores se generan con condiciones lógicas. Como la que veremos a continuación.
Primero, cree un vector numerico llamado num_vect que contenga los valores 0.5, 55, -10, and 6.
num_vect <- c(0.5, 55, -10, 6)
Ahora, cree una variable llamada tf que contenga el resultado de num_vect < 1, es decir los valores de ‘num_vect menores que 1’. Cuántos elementos cree que tendrá el vector tf? Por qué?
La expresión num_vect < 1 es una condición y tf nos dice cuando cada elementos del vector num_vect cumple tal condición. El primer elemento es menor que 1 (0.5 < 1) por ello es TRUE. El segundo es 55 y por lo tanto FALSE, y asi sucesivamente hasta evaluar los 4 elementos de num_vect.
tf <- num_vect < 1
tf
## [1] TRUE FALSE TRUE FALSE
Probemos con otro ejemplo. Escriba num_vect >= 6, sin asignar el resultado a una nueva variable.
num_vect >= 6
## [1] FALSE TRUE FALSE TRUE
Los operadores lógicos son: < (menor), > (mayor), <= (menor o igual), >= (mayor o igual), == (igual) y != (distinto).
Si tenemos dos expresiones lógicas, A y B, podemos preguntar si al menos una de las dos es TRUE con A | B (operador lógico “or”), asi como si ambas son TRUE con A & B (Operador lógico “and”). Finalmetne, !A es la negación de A. Su resultado es TRUE cuando A es falso.
Realicemos mas ejemplos.
(3 > 5) & (4 == 4)
## [1] FALSE
(TRUE == TRUE) | (TRUE == FALSE)
## [1] TRUE
((111 >= 111) | !(TRUE)) & ((4 + 1) == 5)
## [1] TRUE
A continuación veremos vectores de caracteres, los cuales se distinguen por usar comillas dobles(“).
Cree un vector de caracteres conteniendo las siguientes palabras: “Mi”, “nombre”, “es”. Recuerde usar las comillas dobles.
my_char <- c("Mi", "nombre", "es")
my_char
## [1] "Mi" "nombre" "es"
En este momento, my_char es un vector de longitud 3. Sin embargo, lo que queremos es unir todos los elementos de my_char en una sola oración para el vector tenga longitud 1. Para eso se utiliza la función paste().El argumento Collapse agrega un espacio simple entre cada elemento.
paste(my_char, collapse = " ")
## [1] "Mi nombre es"
Ahora agregaremos su nombre en la oración. Ello puede hacerse de varias maneras. Una manera es usando la función c() y concatenando el vector existente my_char y el nombre c(my_char, “su nombre”). Luego se utiliza nuevamente la función paste().
my_name <- c(my_char, "Daniela")
my_name
## [1] "Mi" "nombre" "es" "Daniela"
paste(my_name, collapse = " ")
## [1] "Mi nombre es Daniela"
Otra manera es usando solamente la función paste y agregando tantos elementos como se desee concatenar. Por ejemplo paste(“Hello”, “world!”, sep = " “)
paste("Hello", "world!", sep = " ")
## [1] "Hello world!"
También se puede concatenar dos vectores, cada uno de tres elementos.
paste(1:3, c("X", "Y", "Z"), sep = "")
## [1] "1X" "2Y" "3Z"
Si los vectores son de diferente longitud, R recicla el vector mas corto. Pruebe lo siguiente: paste(LETTERS, 1:4, sep = “-”), donde LETTERS es una variable predefinida que contiene las letras del alfabeto en Inglés
paste(LETTERS, 1:4, sep = "-")
## [1] "A-1" "B-2" "C-3" "D-4" "E-1" "F-2" "G-3" "H-4" "I-1" "J-2" "K-3"
## [12] "L-4" "M-1" "N-2" "O-3" "P-4" "Q-1" "R-2" "S-3" "T-4" "U-1" "V-2"
## [23] "W-3" "X-4" "Y-1" "Z-2"
Ha llegado al final de esta leccion!