class: center, middle .linea-superior[] .linea-inferior[] <img src="imagenes/logo_super_portada.png" width="180" /> # Tarea 6 ## Plazo: 20 de agosto con puntaje extra o 22 de agosto sin extra --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Preámbulo Esta tarea, al igual que las anteriores deberán crear de cero su script. Por favor sea ordenado y utilice tantos comentarios sean necesarios para que se acostumbren a que su trabajo sea autoexplicativo. Recuerde que antes de escribir la respuesta a cada pregunta, debe escribir como comentario en la línea anterior, el numeral que está respondiendo. Por ejemplo: ``` r # Pregunta 2.1 o Pregunta 2: 1, o como usted prefiera hola <- "hola" ``` Si entregan una respuesta sin antes haber puesto como comentario el numeral en la línea anterior tendrán una penalización de **1 décima**. --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 1 (función simple) Como primer ejercicio deberá implementar la famosa ecuación de energía propuesta por Albert Enstein: `$$E = m*c^{2}$$` Donde `\(E\)` es la cantidad de energía, `\(m\)` es la masa de un objeto y `\(c\)` es una **constante** física que representa la velocidad a la que la luz viaja en el vacío, siendo aproximadamente `\(299.792.458\)` metros por segundo. 1.- Usted debe crear una función (llámela como usted prefiera) que reciba como argumento un valor de masa y retorne la energía asociada a esta. El resultado debe estar redondeado a dos decimales. 2.- Modifique la función para que en caso de que no se entregue el valor de la masa esta utilice una masa por defecto con valor `\(5\)`. --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 2 (iteraciones) En este ejericio tendrán que utilizar la base de datos `diamonds` incluida en la librería `tidyverse`. Dado lo anterior, recuerden instalar este paquete (solamente si aún no lo han instalado) y abrirlo. ``` r if (!require('tidyverse')) install.packages('tidyverse'); library('tidyverse') ``` Luego, generen un objeto llamado diamantes con esta base de datos de la siguiente forma: ``` r diamantes <- diamonds ``` --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 2 (iteraciones) Recuerde que la base `diamantes` debiese verse de la siguiente forma: ``` r diamantes ``` ``` ## # A tibble: 53,940 × 10 ## carat cut color clarity depth table price x y z ## <dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl> ## 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43 ## 2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31 ## 3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31 ## 4 0.29 Premium I VS2 62.4 58 334 4.2 4.23 2.63 ## 5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75 ## 6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48 ## 7 0.24 Very Good I VVS1 62.3 57 336 3.95 3.98 2.47 ## 8 0.26 Very Good H SI1 61.9 55 337 4.07 4.11 2.53 ## 9 0.22 Fair E VS2 65.1 61 337 3.87 3.78 2.49 ## 10 0.23 Very Good H VS1 59.4 61 338 4 4.05 2.39 ## # ℹ 53,930 more rows ``` --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 2 (iteraciones) 1.- Utilizando la base `diamantes`, los verbos de `dplyr`, la función `across` y la función `round`, aplique la función `round` a todas las columnas que son *numéricas*. Llame a esta base `diamantes_sin_decimales`. La base `diamantes_sin_decimales` debiese verse de la siguiente forma: ``` ## # A tibble: 53,940 × 10 ## carat cut color clarity depth table price x y z ## <dbl> <ord> <ord> <ord> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 0 Ideal E SI2 62 55 326 4 4 2 ## 2 0 Premium E SI1 60 61 326 4 4 2 ## 3 0 Good E VS1 57 65 327 4 4 2 ## 4 0 Premium I VS2 62 58 334 4 4 3 ## 5 0 Good J SI2 63 58 335 4 4 3 ## 6 0 Very Good J VVS2 63 57 336 4 4 2 ## 7 0 Very Good I VVS1 62 57 336 4 4 2 ## 8 0 Very Good H SI1 62 55 337 4 4 3 ## 9 0 Fair E VS2 65 61 337 4 4 2 ## 10 0 Very Good H VS1 59 61 338 4 4 2 ## # ℹ 53,930 more rows ``` **Note que la función `round` al no recibir argumento se implementó sin decimales o** **en otras palabras, considerando `\(0\)` decimales.** --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 2 (iteraciones) 2.- Utilizando los verbos de `dplyr`, la función `across`, y basándose en la base `diamantes_sin_decimales`, genere una tabla que muestre el promedio de todas las columnas que son *numéricas*. Llame a esta nueva base `diamantes_sin_decimales_promedio`. Esta base de promedios (`diamantes_sin_decimales_promedio`) debiese verse de la siguiente forma: ``` ## # A tibble: 1 × 7 ## carat depth table price x y z ## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 0.767 61.8 57.5 3933. 5.69 5.69 3.61 ``` --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 2 (iteraciones) 3.- Utilizando nuevamente como punto de inicio la base `diamantes`, los verbos de `dplyr`, la función `across` y la función `round`, aplique la función `round` a todas las columnas que son *numéricas* pero ahora **especifique que esta función se implemente considerando sólo 1 decimal**. Llame a esta base `diamantes_un_decimal`. Ahora la base `diamantes_un_decimal` debiese verse de la siguiente forma: ``` ## # A tibble: 53,940 × 10 ## carat cut color clarity depth table price x y z ## <dbl> <ord> <ord> <ord> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 0.2 Ideal E SI2 61.5 55 326 4 4 2.4 ## 2 0.2 Premium E SI1 59.8 61 326 3.9 3.8 2.3 ## 3 0.2 Good E VS1 56.9 65 327 4 4.1 2.3 ## 4 0.3 Premium I VS2 62.4 58 334 4.2 4.2 2.6 ## 5 0.3 Good J SI2 63.3 58 335 4.3 4.3 2.8 ## 6 0.2 Very Good J VVS2 62.8 57 336 3.9 4 2.5 ## 7 0.2 Very Good I VVS1 62.3 57 336 4 4 2.5 ## 8 0.3 Very Good H SI1 61.9 55 337 4.1 4.1 2.5 ## 9 0.2 Fair E VS2 65.1 61 337 3.9 3.8 2.5 ## 10 0.2 Very Good H VS1 59.4 61 338 4 4 2.4 ## # ℹ 53,930 more rows ``` --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 2 (iteraciones) 4.- Utilizando los verbos de `dplyr`, la función `across`, y basándose en la base `diamantes_un_decimal`, genere una tabla que muestre el promedio de todas las columnas que son *numéricas*. Llame a esta nueva base `diamantes_un_decimal_promedio`. Esta base de promedios (`diamantes_un_decimal_promedio`) debiese verse de la siguiente forma: ``` ## # A tibble: 1 × 7 ## carat depth table price x y z ## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 0.791 61.7 57.5 3933. 5.73 5.73 3.54 ``` --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 3 (funciones e iteraciones) Con los conocimientos adquiridos en la última clase, genere una función llamada `funcion_estadistica` que por *default* utilice las columnas numéricas de una base de datos y entregue las siguientes estadísticas descriptivas: media, mediana, máximo y mínimo. De acuerdo a lo anterior, su función debe poseer 2 argumentos: una base de datos y las columnas a analizar. Pruebe esta función en la base de datos `diamantes`. Revise que implementó correctamente su función de las siguientes dos maneras: 1.- El resultado de su función al entregar como argumento solo la base `diamantes` debiese verse de la siguiente forma (1 fila y 28 columnas). *No todas las columnas se ven por un* *tema de espacio*. ``` r funcion_estadistica(diamantes) ``` ``` ## # A tibble: 1 × 28 ## carat_media carat_mediana carat_max carat_min depth_media depth_mediana ## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 0.798 0.7 5.01 0.2 61.7 61.8 ## # ℹ 22 more variables: depth_max <dbl>, depth_min <dbl>, table_media <dbl>, ## # table_mediana <dbl>, table_max <dbl>, table_min <dbl>, price_media <dbl>, ## # price_mediana <dbl>, price_max <int>, price_min <int>, x_media <dbl>, ## # x_mediana <dbl>, x_max <dbl>, x_min <dbl>, y_media <dbl>, y_mediana <dbl>, ## # y_max <dbl>, y_min <dbl>, z_media <dbl>, z_mediana <dbl>, z_max <dbl>, ## # z_min <dbl> ``` --- background-image: url("imagenes/background.PNG") background-size: contain; background-position: 50% 0% # Ejercicio 3 (funciones e iteraciones) 2.- El resultado de su función al entregar como argumentos la base de diamantes y las columnas *carat* y *depth* debiese verse de la siguiente forma: ``` r funcion_estadistica(diamantes, c(carat,depth)) ``` ``` ## # A tibble: 1 × 8 ## carat_media carat_mediana carat_max carat_min depth_media depth_mediana ## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> ## 1 0.798 0.7 5.01 0.2 61.7 61.8 ## # ℹ 2 more variables: depth_max <dbl>, depth_min <dbl> ```