Desafío 1

Se realizan 10 ejemplos con distintos operadores matemáticos.

# variables
x1 = 180
x2 = 50
x3 = -2
x4 = 6
x = x1 - x2
x
## [1] 130
x = x1 %% x2
x
## [1] 30
x = x1 %/% x2
x
## [1] 3
x = x3^x4
x
## [1] 64
x = abs(x3)
x
## [1] 2
x = factorial(x4)
x
## [1] 720
x = exp(x4)
x
## [1] 403.4288
x = log(x4)
x
## [1] 1.791759
x = cos(x1)
x
## [1] -0.5984601
x = tan(x1)
x
## [1] 1.33869

Desafío 2

A continuación, se presentan ejemplos de estructuras de datos.

Factores

Se utilizan para almacenar variables categóricas, las cuales tienen un conjunto fijo y conocido de valores posibles. Para crear un factor, se hace uso de la función factor().

factor1 = factor(c("Cálculo 3", "Cálculo 1", "Cálculo 1", "Cálculo 2", "Cálculo 1", "Cálculo 3"))
factor1
## [1] Cálculo 3 Cálculo 1 Cálculo 1 Cálculo 2 Cálculo 1 Cálculo 3
## Levels: Cálculo 1 Cálculo 2 Cálculo 3

Para conocer los valores que puede tomar la variable, se utiliza la función levels().

levels(factor1)
## [1] "Cálculo 1" "Cálculo 2" "Cálculo 3"

Las variables categóricas se clasifican en nominales y ordinales. Las primeras no tienen una jerarquía entre ellas, en cambio las ordinales pueden ordenarse. Para esto hay que añadir el argumento ordered = TRUE y un vector con el orden establecido a la función factor().

factor2 = factor(factor1, ordered = TRUE, levels = c("Cálculo 1", "Cálculo 2", "Cálculo 3"))
factor2
## [1] Cálculo 3 Cálculo 1 Cálculo 1 Cálculo 2 Cálculo 1 Cálculo 3
## Levels: Cálculo 1 < Cálculo 2 < Cálculo 3

Para cambiar el nombre de las variables categóricas, se debe crear un nuevo vector, respetando el orden que entrega la función levels().

levels(factor2)
## [1] "Cálculo 1" "Cálculo 2" "Cálculo 3"
levels(factor2) = c("C1", "C2", "C3")
factor2
## [1] C3 C1 C1 C2 C1 C3
## Levels: C1 < C2 < C3

Finalmente, es posible graficar los factores con la función plot().

Tablas de frecuencia

Una manera de organizar datos es a través de tablas de frecuencia.

Creamos un vector con los datos recopilados.

asignaturas = c("Cálculo", "Álgebra", "Cálculo", "Física", "Física", "Física", "Cálculo", "Estadística")

Con la función table() creamos una tabla de frecuencia.

table(asignaturas)
## asignaturas
##     Álgebra     Cálculo Estadística      Física 
##           1           3           1           3

También es posible convertir a tablas de frecuencia relativa con la función prop.table().

asig = table(asignaturas)
prop.table(asig, margin = NULL)
## asignaturas
##     Álgebra     Cálculo Estadística      Física 
##       0.125       0.375       0.125       0.375

Por otro lado, se puede agregar un total de datos con la función addmargins().

addmargins(asig, 1)
## asignaturas
##     Álgebra     Cálculo Estadística      Física         Sum 
##           1           3           1           3           8

Desafío 3

Para la siguiente función que permite jugar a “piedra, papel o tijeras”, se considera como parámetro de entrada la elección del jugador, para lo cual se establece que 1 representa “piedra”, 2 representa “papel” y 3 representa “tijeras”.

juego = function(jugada){
  if(jugada==1 | jugada == 2 | jugada==3){
    # Se elige aleatoriamente la jugada por parte del contrincante
    contra = sample(1:3,1)
    # Si ambos jugadores eligen la misma opción
    if(jugada == contra){
      print("Se ha producido un empate.")
    }else{
      # Si el jugador elige piedra
      if(jugada == 1){
        if(contra == 2){
          print("Piedra ha perdido contra papel.")
          }else{
            print("Piedra ha ganado contra tijera.")
            }
        # Si el jugador elige papel
        }else if(jugada == 2){
          if(contra == 1){
            print("Papel ha ganado contra piedra.")
            }else{
              print("Papel ha perdido contra tijera.")
              }
          # Si el jugador elige tijera
          }else{
            if(contra == 1){
              print("Tijera ha perdido contra piedra.")
              }else{
                print("Tijera ha ganado contra papel.")
              }
          }
      }
    }else{
      print("Jugada no válida.")
    }
  }

Luego, se prueba la función con distintos valores:

juego(1)
## [1] "Piedra ha perdido contra papel."
juego(2)
## [1] "Papel ha ganado contra piedra."
juego(3)
## [1] "Tijera ha ganado contra papel."
juego(4)
## [1] "Jugada no válida."

Desafío 4

1.- Seleccionamos el dataset “AirPassengers”.

data("AirPassengers")

2.- El conjunto de datos seleccionado muestra el total mensual de pasajeros de líneas internacionales de la aerolínea Box & Jenkins entre los años 1949 y 1960. La fuente de los datos corresponde a la tercera edición del artículo “Time Series Analysis, Forecasting and Control”, publicado en 1976 por Box, Jenkins y Reinsel.

3.- Las variables presentes en esta tabla corresponden a los meses y años. Los meses son una variable cualitativa ordinal y politómica que puede tomar como valor los nombres de los meses del año, por lo que no tiene unidad de medida, en cambio los años son una variable cuantitativa ratio y discreta, en este caso, puede tomar valores númericos entre 1949 a 1960.

4.- La función entrega los valores mínimo y máximo de la cantidad de pasajeros registrados en la tabla, el promedio de los datos, además del primer, segundo (mediana) y tercer cuartil. En este caso, las fechas con menos de 180 pasajeros representan el 25% de los datos, las fechas con cantidades menores a 265,5 el 50% y las fechas con menos de 360 pasajeros el 75%. Con lo cual es posible construir un diagrama de caja.

summary(AirPassengers)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   104.0   180.0   265.5   280.3   360.5   622.0

5.- Con la función plot se genera un gráfico con los datos entregados en la tabla, en donde el eje “x” representa el tiempo en años y el eje “y” la cantidad de pasajeros.