Desafío n°1 - Operadores matemáticos

#1 Parte entera de una division:

divisionEntera = 10 %/% 3
divisionEntera
## [1] 3
#2 Resto de una division:

restoDivision = 10 %% 3
restoDivision
## [1] 1
#3 Factorial de un numero:

fact = factorial(5)
fact
## [1] 120
#4 Calcular funcion exponencial

exponencial = exp(3)
exponencial
## [1] 20.08554
#5 Calcular logaritmo natural

logNatural = log(3)
logNatural
## [1] 1.098612
#6 Calcular logaritmo especificando base y argumento

log = log(6,2)
log
## [1] 2.584963
#7 Calcular el valor absoluto 

absolute = abs(-3)
absolute
## [1] 3
#8 Calculo del seno

sen = sin(90)
sen
## [1] 0.8939967
#9 Calculo del coseno

cosine = cos(90)
cosine
## [1] -0.4480736
#10 Aplica una formula de combinatoria

comb = choose(5,3)
comb
## [1] 10

Desafío n°2 - Estructuras de Datos

#Desafio 2 - Estructuras de datos

# - Secuencias

#Secuencia de 1 a 20
secc = seq(1,20)
secc
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
#Secuencia de 0 a 10, con saltos de 0,5
secc2 = seq(0,10,0.5)
secc2
##  [1]  0.0  0.5  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0
## [16]  7.5  8.0  8.5  9.0  9.5 10.0
#Imaginarios
z = 32 + 8i
z
## [1] 32+8i
#Se verifica el tipo de dato
class(z)
## [1] "complex"
#Booleanos
#Existen distintos operadores booleanos tales como: ==, !=, <, >, <= y >=
#Usaremos una pequeña sentencia if para demostrar el uso de booleanos mediante el operador ==

a = 2
if(a == 2){
  cat("La sentencia es verdadera y la variable 'a' es 2 ")
}
## La sentencia es verdadera y la variable 'a' es 2
#Caracteres
caracter <- "a"
caracter
## [1] "a"
#Verificamos 
typeof(a)
## [1] "double"

Desafío n°3 - Piedra/Papel/Tijera

A continuación se presenta una función que permite jugar al piedra papel o tijeras contra la consola (al mejor de 1), esto mediante el uso de de condicionales para determinar si un movimiento derrota al del oponente. Cabe destacar que para hacer uso correcto de la función se ha de ejecutar el código e ingresar valores por consola. Aun asi en el archivo .html se verá la secuencia normal cuando el usuario elige papel y la maquina piedra, sin embargo no se muestra el resultado dado que no se ingresan valores de la manera correcta, esto es solo el resultado de crear el archivo antes mencionado.

#Desafio 3 - Piedra/Papel/Tijera

ppt <- function(){
  
  oponent <- sample(1:3,1)
  cat("Bienvenido al juego PIEDRA/PAPEL/TIJERA!!\n1) Piedra\n2) Tijera \n3) Papel")
  player <- readline(prompt = "\nEscoja una opcion: ")
  
  as.integer(player)
  as.integer(oponent)
  
  if(player == 1){
    cat("Usted ha elegido Piedra\n")
  }else if(player == 2){
    cat("Usted ha elegido Tijera\n")
  }else{
    cat("Usted ha elegido Papel\n")
  }
  
  if(oponent == 1){
    cat("La maquina ha elegido Piedra\n")
  }else if(oponent == 2){
    cat("La maquina ha elegido Tijera\n")
  }else{
    cat("La maquina ha elegido Papel\n")
  }
  
  cat("\n")

  if(oponent == player)
  {
    cat("Es un empate")
  }else if(oponent == 1 && player == 2)
  {
    cat("Has perdido")
  }else if(oponent == 1 && player == 3)
  {
    cat("Has ganado")
  }else if(oponent == 2 && player == 1)
  {
    cat("Has ganado")
  }else if(oponent == 2 && player == 3)
  {
    cat("Has perdido")
  }else if(oponent == 3 && player == 2)
  {
    cat("Has ganado")
  }else if(oponent == 3 && player == 1)
  {
    cat("Has perdido")
  }
  
  cat("!")
  
}

ppt()
## Bienvenido al juego PIEDRA/PAPEL/TIJERA!!
## 1) Piedra
## 2) Tijera 
## 3) Papel
## Escoja una opcion: 
## Usted ha elegido Papel
## La maquina ha elegido Tijera
## 
## !

Desafío 4 - Conjuntos de Datos

La fuente de los datos proviene de uno de los proyectos PRIM-H de la Universidad de Harvard relacionados con los data sets. De la misma forma para este proyecto se obtuvo informacion del Dr. John Woodhouse, perteneciente al departamento de Geofisica de la universidad antes mencionada.

  1. Lat: Latitud geografica del evento.

  2. Long: Longitud geografica del evento.

  3. Depth: Profundidad del sismo.

  4. Mag: Magnitud del sismo.

  5. Station: N° de reportes provenientes de estaciones.

nombres = c("Latitud", "Longitud", "Profundidad", "Magnitud", "Estación")
abreviacion = c("Lat", "Long", "Depth", "Mag", "Station")
tipoVariable = c("Continua","Continua","Continua","Continua", "Discreta")
uDeMedida = c("Grados", "Grados", "Kilometros(km)","Magnitud Ritcher", "--")
valores = c("[-38.59,-10.72]","[165.7, 188.1]","[40.0, 680]","[4.0, 6.40]","[10,132]")

variables = data.frame(Nombres = nombres, Abreviacion=abreviacion, TipoVariable = tipoVariable, U.Medida= uDeMedida, Rangos = valores)
head(variables)
##       Nombres Abreviacion TipoVariable         U.Medida          Rangos
## 1     Latitud         Lat     Continua           Grados [-38.59,-10.72]
## 2    Longitud        Long     Continua           Grados  [165.7, 188.1]
## 3 Profundidad       Depth     Continua   Kilometros(km)     [40.0, 680]
## 4    Magnitud         Mag     Continua Magnitud Ritcher     [4.0, 6.40]
## 5    Estación     Station     Discreta               --        [10,132]

Como se puede apreciar, al utilizar la función “Summary” sobre un data set, esta nos hará una resumen de las distintas variables presentes, mostrando distintos analisis estadísticos como son el valor minimo y maximo que alcanza una variable, 1er y 3er cuartil, la mediana y el promedio de los datos obtenidos.

summary(quakes)
##       lat              long           depth            mag      
##  Min.   :-38.59   Min.   :165.7   Min.   : 40.0   Min.   :4.00  
##  1st Qu.:-23.47   1st Qu.:179.6   1st Qu.: 99.0   1st Qu.:4.30  
##  Median :-20.30   Median :181.4   Median :247.0   Median :4.60  
##  Mean   :-20.64   Mean   :179.5   Mean   :311.4   Mean   :4.62  
##  3rd Qu.:-17.64   3rd Qu.:183.2   3rd Qu.:543.0   3rd Qu.:4.90  
##  Max.   :-10.72   Max.   :188.1   Max.   :680.0   Max.   :6.40  
##     stations     
##  Min.   : 10.00  
##  1st Qu.: 18.00  
##  Median : 27.00  
##  Mean   : 33.42  
##  3rd Qu.: 42.00  
##  Max.   :132.00

Al hacer uso de esta función obtendremos una grafica de las variables involucradas en el data set. En este caso se presentan distintos graficos de dispersion asociados a las 5 variables latitud, longitud, profundidad, magnitud y estaciones. Estos graficos representan la magnitud de las variables y su disposición luego de las 1000 muestras.

plot(quakes)