Santiago Humberto Londoño Restrepo
February 24, 2016
Esta semana aprenderemos sobre objetos de almacenamiento. Cómo su nombre lo indica son objetos donde se almacenará la información de interés y que será analizada. Por ejemplo, cuando tienes una base de datos en excel donde registras el nombre del cliente, su edad, su dirección, su género y cantidad de productos comprados, significa que estas almecenando información; dicha base de datos se conoce en el mundo de R como data.frame, objeto de almacenamiento que abordaremos las próximas semanas. Para la semana 3 nos concentraremos en el objeto de almacenamiento más básicos conocidos como vector.
Por favor, asigne el valor “Estoy muy feliz” a la variable Yo e imprimala.
#Asignación
Yo <- "Estoy muy feliz"
#Imprimir
Yo## [1] "Estoy muy feliz"
Los vectores son arreglos unidimensionales (objetos) o una herramienta que nos sirve para almacenar datos de un sólo tipo, ya sea de tipo númerico, de texto o de tipo logico.
Para crear un vector se utiliza la función c(). Luego situas los elementos a almacenar separados por coma dentro del parentesis.
Ejemplo
vector_numerico <- c(1, 45, 98899)
vector_numerico## [1] 1 45 98899
vector_de_texto <- c("Santiago Londoño", "Lionel Messi", "Luis el Mordelon Suárez")
vector_de_texto## [1] "Santiago Londoño" "Lionel Messi"
## [3] "Luis el Mordelon Suárez"
vector_logico <- c(F, T, T)
vector_logico## [1] FALSE TRUE TRUE
Cree un vector lógico o booleano que contenga TRUE, FALSE, FALSE, FALSE. Llame a ese vector mi_primera_vez e imprimalo
mi_primera_vez <- c(T, F, F, F)
mi_primera_vez## [1] TRUE FALSE FALSE FALSE
Supongamos que somos amantes de los juegos de azar y queremos analizar nuestro desempeño en el casino la última semana. Para realizar ese proceso primero debemos recolectar y almacenar información en vectores.
Primero cree un vector que contenga la siguiente información, tenga presente que las posiciones 1 de cada vector corresponde a Lunes, la 2 a martes, la 3 a miércoles, la 4 a jueves y la 5 a viernes.
Para el juego de poker (nota: valores en miles de pesos colombianos)
Para el juego de la ruleta:
#Vector poker
poker <- c(140, -50, 20, -120, 240)
poker## [1] 140 -50 20 -120 240
#Vector ruleta
ruleta <- c(-24, -50, 100, -350, 10)
ruleta## [1] -24 -50 100 -350 10
Note que los vectores creados no incluyen los días de la semana. Sería muy cheveré que los vectores los incluyeran ya que esto permitirá realizar un mejor análisis.
Para proporcionar nombres dentro de un vector se usa la función names. Esta función se debe utilizar de la siguiente manera:
Este código crea primero crea un vector cualquiera llamado cualquier_vector en este caso un vector de texto, que almacena dos datos. Luego utiliza la función names() para asignarle al vector cualquiera_vector los nombres deseados.
Apliquemos esta poderosa herramienta y realiza el siguiente ejercicio
Asignale los días de la semana a los vectores poker y ruleta creados previamente. Por si no lo recuerdas los días de la semana son: Lunes, Martes, Miércoles, Jueves, Viernes, Sábado y Domingo.
#Vector poker
poker <- c(140, -50, 20, -120, 240)
poker## [1] 140 -50 20 -120 240
#Vector ruleta
ruleta <- c(-24, -50, 100, -350, 10)
ruleta## [1] -24 -50 100 -350 10
#Mira lo que sucede si aplico la función names() sobre los vectores.
names(poker)## NULL
names(ruleta)## NULL
#Solución ejercicio
names(poker) <- c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes")
names(ruleta) <- c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes")
#Mira lo que sucede si aplico nuevamente la función names sobre los vectores.
#¿Ves alguna diferencia?
names(poker)## [1] "Lunes" "Martes" "Miércoles" "Jueves" "Viernes"
names(ruleta)## [1] "Lunes" "Martes" "Miércoles" "Jueves" "Viernes"
#Observa que sucede si imprimo los vectores
poker## Lunes Martes Miércoles Jueves Viernes
## 140 -50 20 -120 240
ruleta## Lunes Martes Miércoles Jueves Viernes
## -24 -50 100 -350 10
Espero haya notado que para cada vector se escribio dos veces lo mismo. Realmente es una tarea muy aburridora y lo sería aún más si necesitaras repetir el proceso más de dos veces.
El camino más eficiente es crear un vector que contenga los días de la semana y luego utilizarlo según sea mi necesidad
Ejemplo
#Vector poker
poker <- c(140, -50, 20, -120, 240)
#Vector ruleta
ruleta <- c(-24, -50, 100, -350, 10)
#Creo un vector con los nombres de la semana
nombres_semana <- c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes")
#Doy nombre a los elementos de los vectores poker y ruleta respectivamente.
names(poker) <- nombres_semana
names(ruleta) <- nombres_semana
#Se obtiene el mismo resultado
poker## Lunes Martes Miércoles Jueves Viernes
## 140 -50 20 -120 240
ruleta## Lunes Martes Miércoles Jueves Viernes
## -24 -50 100 -350 10
Felicitaciones ahora que usted tiene vectores nombrados adecuadamente esta listo para realizar algo de magia. Suponga que usted quiere responder las siguientes preguntas:
Para responder esas preguntas, además de crear vectores debes tener a la mano las siguientes herramientas:
Ejemplo
A_vector <- c(1,2,3)
B_vector <- c(4,5,6)
total_vector <- A_vector + B_vector
total_vector## [1] 5 7 9
Ejemplo
A_vector <- c(1,2,3)
B_vector <- c(4,5,6)
suma_A_vector <- sum(A_vector)
suma_A_vector## [1] 6
suma_B_vector <- sum(B_vector)
suma_B_vector## [1] 15
Ejemplo
A_vector <- c(1,2,3)
B_vector <- c(4,5,6)
promedio_A_vector <- mean(A_vector)
promedio_A_vector## [1] 2
promedio_B_vector <- mean(B_vector)
promedio_B_vector## [1] 5
Teniendo las herramientas proporcionadas hasta aquí, responda las siguientes preguntas:
Recuerda:los datos con los que estamos trabajando son:
#Vector poker
poker <- c(140, -50, 20, -120, 240)
#Vector ruleta
ruleta <- c(-24, -50, 100, -350, 10)
#Creo un vector con los nombres de la semana
nombres_semana <- c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes")
#Doy nombre a los elementos de los vectores poker y ruleta respectivamente.
names(poker) <- nombres_semana
names(ruleta) <- nombres_semana#Vector poker
poker <- c(140, -50, 20, -120, 240)
#Vector ruleta
ruleta <- c(-24, -50, 100, -350, 10)
#Creo un vector con los nombres de la semana
nombres_semana <- c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes")
#Doy nombre a los elementos de los vectores poker y ruleta respectivamente.
names(poker) <- nombres_semana
names(ruleta) <- nombres_semana
#¿Cuánto ha sido la ganancia o pérdida por día de la semana?
#Asigne esta respuesta en una variable denominada resultado_x_dia e imprimala.
resultado_x_dia <- poker + ruleta
resultado_x_dia## Lunes Martes Miércoles Jueves Viernes
## 116 -100 120 -470 250
#¿Ha perdido dinero durante la semana? Asigne esta respuesta en una variable
#denominada resultado_total, e imprimala.
resultado_total <- sum(poker) + sum(ruleta)
resultado_total## [1] -84
#¿Esta ganando o perdiendo dinero en poker o en la ruleta?
#Asinge la respuesta para el juego poker en una variable denominada resultado_poker,
#para el juego ruleta en una variable denominada resultado_ruleta.
#Ambas variables deben ser imprimidas.
resultado_poker <- sum(poker)
resultado_poker## [1] 230
resultado_ruleta <- sum(ruleta)
resultado_ruleta## [1] -314
Para realizar comparaciones por lo general se utilizan los siguientes operadores lógicos < menor que, <= menor o igual a, > mayor que, >= mayor o igual a y != diferente a.
Ejemplo 1
8 < 9## [1] TRUE
6 > 2## [1] TRUE
5 >= 5## [1] TRUE
7 <= 87## [1] TRUE
7 != 7## [1] FALSE
¿Qué resultado almacenará la variable comp, la cual se obtiene con el siguiente código?
#Vector poker
poker <- c(140, -50, 20, -120, 240)
#Vector ruleta
ruleta <- c(-24, -50, 100, -350, 10)
#Creo un vector con los nombres de la semana
nombres_semana <- c("Lunes", "Martes", "Miércoles", "Jueves", "Viernes")
#Doy nombre a los elementos de los vectores poker y ruleta respectivamente.
names(poker) <- nombres_semana
names(ruleta) <- nombres_semana
resultado_poker <- sum(poker)
resultado_ruleta <- sum(ruleta)
comp <- resultado_poker > resultado_ruletacomp## [1] TRUE