#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
#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"
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
##
## !
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.
Lat: Latitud geografica del evento.
Long: Longitud geografica del evento.
Depth: Profundidad del sismo.
Mag: Magnitud del sismo.
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)