Desafio 1: Realice otros 10 ejemplos con operadores matemáticos.

1- Operador: Factorial.

# El siguiente operador corresponde al factorial.
factorial_4 = factorial(4)
cat("El valor del factorial de 4! es : ",factorial_4)
## El valor del factorial de 4! es :  24

2- Operadores: División de valores factoriales.

#Operación división de dos factoriales.
div_factorial = factorial(6)/factorial(3)
cat("El resultado de la división entre el 6!/ 3! es: ",div_factorial)
## El resultado de la división entre el 6!/ 3! es:  120

3- Operador: Calculo de coseno de π.

#Operación calcula el valor del coseno, en este ejemplo de pi.
coseno_pi = cos(pi)
cat("El resultado del coseno de pi es: ",coseno_pi)
## El resultado del coseno de pi es:  -1

4- Operador: Calculo de valor absoluto.

#La siguiente función calcula el valor absoluto del número ingresado.
valor_abs1 = abs(-23)
valor_abs2 = abs(23)
cat("Los valores absolutos de -23 y 23, respectivamente son :",valor_abs1," y ",valor_abs2)
## Los valores absolutos de -23 y 23, respectivamente son : 23  y  23

5- Operador: Calculo de raíz cuadrada.

#El siguiente operador calcula la raíz cuadrada del valor ingresado.
raizcuadrada = sqrt(144)
cat("La raiz cuadrada de 144 corresponde a :",raizcuadrada)
## La raiz cuadrada de 144 corresponde a : 12

6- Operador: Suma de varios datos.

#El siguiente ejemplo corresponde a una suma de varios valores simultáneamente.
n1= 24
n2= 68
n3= 71
n4= 92
n5 =122
sumatotal= n1+n2+n3+n4+n5
cat("La suma de los siguientes valores ", n1, n2, n3, n4, n5, "corresponde a :", sumatotal)
## La suma de los siguientes valores  24 68 71 92 122 corresponde a : 377

7- Operador: Resta de varios datos.

#Para la ejemplificación se utilizan las variables definidas previamente.
restatotal= n1-n2-n3-n4-n5
cat("La resta de los siguientes valores ", n1, n2, n3, n4, n5, "corresponde a :", restatotal)
## La resta de los siguientes valores  24 68 71 92 122 corresponde a : -329

8- Operador: Sumas y restas.

#Para este ejemplo se utilizan operadores suma y resta de forma mezclada con las mismas variables definidas previamente.
suma_resta= n1+n2-n3+n4-n5
cat("La siguiente operación (n1+n2-n3+n4-n5) realizada con estos valores ", n1, n2, n3, n4, n5, "corresponde a :", suma_resta)
## La siguiente operación (n1+n2-n3+n4-n5) realizada con estos valores  24 68 71 92 122 corresponde a : -9

9- Operador: Multiplicación y división.

#El siguiente ejemplo mezcla operador mltiplicación y división con los datos entregados previamente.
multi_divi= n1*n2*n3/n4
cat("La siguiente operación (n1*n2*n3/n4) realizada con estos valores ", n1, n2, n3, n4, "corresponde a :", multi_divi)
## La siguiente operación (n1*n2*n3/n4) realizada con estos valores  24 68 71 92 corresponde a : 1259.478

10- Operador: Paréntesis.

#La operación a continuación presenta operadores utilizados previamente, como suma, multiplicación y división, sin embargo uno de lso desarrollos presenta un parentesis para comparar la utilización de este en los resultados.
sin_parentesis= n1+n2/n3*n4
con_parentesis= (n1+n2)/n3*n4
cat("La siguiente operación (n1+n2/n3*n4) sin parentesis da como resultado :",sin_parentesis,"por otro lado, la misma operación pero con el uso de parentesis ((n1+n2)/n3*n4) da como resultado :", con_parentesis)
## La siguiente operación (n1+n2/n3*n4) sin parentesis da como resultado : 112.1127 por otro lado, la misma operación pero con el uso de parentesis ((n1+n2)/n3*n4) da como resultado : 119.2113

Desafio 2: Realice ejemplos usando otro tipo de estructura de datos.

1- Estructura : Vector.

#Definición de un vector de 6 datos
vector_ejemplo= c(5,1,3,3,9,10)
cat ("El vector original corresponde a : ",vector_ejemplo)
## El vector original corresponde a :  5 1 3 3 9 10
#Seleccción del tercer elemento del vector
tercer_elemento= vector_ejemplo[3]
cat ("\nEl tercer elemento del vector original es : ",tercer_elemento)
## 
## El tercer elemento del vector original es :  3
#Cambio de valor del tercer elemento
vector_ejemplo[3]=800
cat ("\nEl nuevo vector cuando se cambia el tercer valor por 800 es : ",vector_ejemplo)
## 
## El nuevo vector cuando se cambia el tercer valor por 800 es :  5 1 800 3 9 10

2- Estructura: Matriz.

#Creación de matriz de 4x4
matriz_ejemplo= matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4,ncol=4)
cat("ejemplo matriz de 4x4 : \n")
## ejemplo matriz de 4x4 :
matriz_ejemplo
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    9   13
## [2,]    2    6   10   14
## [3,]    3    7   11   15
## [4,]    4    8   12   16
#asignación de nombres filas y columnas
colnames(matriz_ejemplo) = c("a1.1","a1.2","a1.3","a1.4")
rownames(matriz_ejemplo)= c("a1.1","a2.1","a3.1","a4.1")
cat("\nAsignación nombres en columnas y filas : \n")
## 
## Asignación nombres en columnas y filas :
matriz_ejemplo
##      a1.1 a1.2 a1.3 a1.4
## a1.1    1    5    9   13
## a2.1    2    6   10   14
## a3.1    3    7   11   15
## a4.1    4    8   12   16
#Ejemplo de operaciones con matrices.
determinante= det(matriz_ejemplo)
diagonal= diag(matriz_ejemplo)
cat("\nEl valor de la determinante de la matrz es: ",determinante," y los puntos de la diagonal son: ",diagonal)
## 
## El valor de la determinante de la matrz es:  0  y los puntos de la diagonal son:  1 6 11 16

3- Estructura: Listas.

#Ejemplo estructura de datos
lista = list(nombre="Juan",direccion="Maipú",edad=24,rut=211234567)
cat("La lista creada presenta los siguientes datos: \n")
## La lista creada presenta los siguientes datos:
lista
## $nombre
## [1] "Juan"
## 
## $direccion
## [1] "Maipú"
## 
## $edad
## [1] 24
## 
## $rut
## [1] 211234567
#Los atributos utilizados en la lista.
cat("\nLos atributos utilizados en la lista son: \n")
## 
## Los atributos utilizados en la lista son:
attributes(lista)
## $names
## [1] "nombre"    "direccion" "edad"      "rut"
#Modificar datos
lista$nombre="Pedro"
lista$edad=45
cat("\nAl cambiar los datos de nombre y edad la nueva lista queda de la siguiente forma : \n")
## 
## Al cambiar los datos de nombre y edad la nueva lista queda de la siguiente forma :
lista
## $nombre
## [1] "Pedro"
## 
## $direccion
## [1] "Maipú"
## 
## $edad
## [1] 45
## 
## $rut
## [1] 211234567

4- Estructura: Dataframes.

#Listado de datos
cat("Listado valores Ciudades : \n")
## Listado valores Ciudades :
lugar=c("Santiago","Valparaiso","Temuco","Copiapo","Punta Arenas")

cat("Listado valores temperaturas : \n")
## Listado valores temperaturas :
temperatura_actual= c(27,20,17,26,12)

cat("Listado valores porcentaje humedad : \n")
## Listado valores porcentaje humedad :
porcentaje_humedad= c("45%","72%","61%","66%","32%");

#Creación de archivo dataframes.
tiempo_ciudades = data.frame(ciudad = lugar, temperatura_actual = temperatura_actual, porcentaje_humedad = porcentaje_humedad)

cat("El dataframe creado con los datos anteriores es: \n")
## El dataframe creado con los datos anteriores es:
head(tiempo_ciudades)
##         ciudad temperatura_actual porcentaje_humedad
## 1     Santiago                 27                45%
## 2   Valparaiso                 20                72%
## 3       Temuco                 17                61%
## 4      Copiapo                 26                66%
## 5 Punta Arenas                 12                32%

Desafio 3: Construya una función que permita a un jugador jugar al piedra, papel o tijeras.

#creación de la función que genera un artefacto para el juego (piedra, papel o tijera).

escoger_artefacto = function(){
  azar= sample(1:3, 1)
  if(azar==1){
    print("Tijera")}
  if(azar==2){
    print("Papel")
  }else{
    print("Piedra")}
}

#Llamado a funcion de artefacto escogido por cada jugador
jugador1= escoger_artefacto()
## [1] "Tijera"
## [1] "Piedra"
jugador2=escoger_artefacto()
## [1] "Piedra"
cat("\nEl jugador 1 escoge : ",jugador1)
## 
## El jugador 1 escoge :  Piedra
cat("\nEl jugador 2 escoge : ",jugador2,"\n")
## 
## El jugador 2 escoge :  Piedra
#Función que compara artefactos y determina quien es el ganador o si es empate.
juego = function(jugador1,jugador2){
  if(jugador1=="Tijera"){
    if(jugador2=="Tijera"){
      print("Empate, ambos con tijera.")
    }
    if(jugador2=="Papel"){
      print("Gana jugador 1 con tijera sobre papel.")
    }else{
      print("Gana jugador 2 con piedra sobre tijera.") #Los llamados else corresponden a piedra.
    }
  }
  if(jugador1=="Papel"){
    if(jugador2=="Tijera"){
      print("Gana jugador 2 con tijera sobre papel.")
    }
    if(jugador2=="Papel"){
      print("Empate, ambos con papel.")
    }else{
      print("Gana jugador 2 con piedra sobre papel.")
    }
  } else{
    if(jugador2=="Tijera"){
      print("Gana jugador 2 con tijera sobre piedra.")
    }
    if(jugador2=="Papel"){
      print("Gana jugador 2 con papel sobre piedra.")
    }else{
      print("Empate, ambos con piedra.")
    }  
  }
}

#Llamado a la función que indica el ganador con los artefactos escogidos por el jugador 1 y jugador 2.

resultado= juego(jugador1,jugador2)
## [1] "Empate, ambos con piedra."
cat("\nEl resultado del juego es : ",resultado)
## 
## El resultado del juego es :  Empate, ambos con piedra.

Desafio 4: Seleccionar conjunto de datos desde el paquete “datasets” de R.

1.Selección dataset:

#Conjunto de datos escogido desde el paquete datasets.
cat("Conjunto de datos escogidos: \n")
## Conjunto de datos escogidos:
data(co2)
str(co2)
##  Time-Series [1:468] from 1959 to 1998: 315 316 316 318 318 ...

2.Describir conjunto de datos:

Los datos obtenidos desde la base de datos corresponden a las medidas de CO2 mensuales desde 1959 hasta 1997 registradas en el Observatorio de Mauna Loa, Hawai. Dicha información corresponde a mediciones directas realizadas con un analizador ubicado en la zona indicada. El registro de estos datos corresponde al programa denominado “Scripps CO2” creado por el científico Charles David Keeling con el apoyo de la Universidad de California y la US National Science Foundation. El objetivo de este programa es almacenar datos relacionados con el incremento de los gases de efecto invernadero, específicamente el CO2, en diferentes estaciones de muestreo, de manera en que los datos se encuentren disponibles para la población general e investigadores de forma más accesible y sirvan para concientizar los cambios globales y medioambientales a los que nos exponemos. La fuente de dichos datos corresponde al programa “Scripps CO2” (https://scrippsco2.ucsd.edu/).

3.Describir cada variable y clasificarla:

Las variables corresponde a Mes, año y concentracion de CO2.

1. Mes = variable independiente , cualitativa, ordinal,poliatomica. Los valores que puede tomar corresponden a los meses de año (Enero a Diciembre).

2. Año = variable independiente , cuantitativa, intervalo, discreta, los valores que puede tomar son desde 1959 hasta 1997 (años en que se realiza el registro del incremento de CO2)

3. Concentración CO2 = (ppm,µg/m3), variable dependiente, cuantitativa, ratio, discreta. Los valores medidos se encuentran entre 313.2 y 366.8 µg/m3 de CO2 en el aire.

4.Ejecutar función summary:

#Ejecución de función summary
summary(co2)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   313.2   323.5   335.2   337.1   350.3   366.8

La función summary entrega selección de datos descriptivos como el valor minimo de concentración de CO2 medido correspondiente a 313,3 ppm, el valor máximo (366,8 ppm de CO2 en el aire) , la mediana de 335,2, la media de 337,1, el primer cuartil (323,5) y el tercer cuartil correspondiente a 350,3.

5.Ejecutar función plot:

cat("Ejecución de la función plot \n")
## Ejecución de la función plot
plot(co2)

Esta función muestra los datos obtenidos desde la libreria y los gráfica mostrando la relacion entre la concentracion de CO2 atmosférico en el eje de la ordenada y los años en el eje de la abscisas.

A partir de la observación de dicho gráfico es posible observar la tendencia al incremento de la concentración de CO2 a medida que aumenta el año de medición. Sin embargo, también se puede observa que el incremento no es lineal, teniendo pequeñas variaciones como aumentos y disminución dentro de cada año.

Referencias:

  • Keeling, C. D. and Whorf, T. P., Scripps Institution of Oceanography (SIO), University of California, La Jolla, California USA 92093-0220.
  • R studio. 2016. Markdown Basics. https://rmarkdown.rstudio.com/authoring_basics.html
  • Villalobos, M. 2023. Introducción al uso de R. Departamento de Ingeniería Informática. Universidad de Santiago de Chile.