‘Ejercicio 1:’

1. Crear un data frame con los datos de la tabla.

Mes <- c("Mayo", "Junio", "Julio")
Ingresos <- c(45000, 41500, 35400)
Gastos <- c(33400, 35400, 35600)
df <- data.frame(Mes, Ingresos, Gastos )

2. Adjunta una nueva columna denominada impuestos.

df_final <- mutate(df, Impuestos = c(6450, 6300, 7100))

glimpse(df_final)
## Rows: 3
## Columns: 4
## $ Mes       <chr> "Mayo", "Junio", "Julio"
## $ Ingresos  <dbl> 45000, 41500, 35400
## $ Gastos    <dbl> 33400, 35400, 35600
## $ Impuestos <dbl> 6450, 6300, 7100

3. Crea una nueva fila con los datos de Agosto provistos.

new0 = data.frame(Mes = "Agosto", Ingresos =49700, Gastos= 36300, Impuestos= 6850)
data_final = full_join(new0,df_final)
## Joining with `by = join_by(Mes, Ingresos, Gastos, Impuestos)`

4. Cambia los ingresos de julio por 50400.

data_final <- data_final %>%
  mutate(Ingresos = case_when(
    Mes == "Julio" ~ 50400,
    TRUE ~ Ingresos  
  ))

5. Crea una nueva columna con los beneficios de cada mes (ingresos - gastos - impuestos).

data_final = data_final%>%
  mutate("Beneficios" = Ingresos-Gastos-Impuestos)

6. Crea una nueva columna de tipo factor, que denomines Balance con dos posibles categorias, positivo: si hay beneficios y negativo: si hay perdidas.

data_final = data_final%>%
           mutate(
             Balance = factor (case_when(
               Beneficios >0 ~ "positivo", 
               TRUE ~ "negativo"
             ))) 

glimpse(data_final)
## Rows: 4
## Columns: 6
## $ Mes        <chr> "Agosto", "Mayo", "Junio", "Julio"
## $ Ingresos   <dbl> 49700, 45000, 41500, 50400
## $ Gastos     <dbl> 36300, 33400, 35400, 35600
## $ Impuestos  <dbl> 6850, 6450, 6300, 7100
## $ Beneficios <dbl> 6550, 5150, -200, 7700
## $ Balance    <fct> positivo, positivo, negativo, positivo

7. Filtra el conjunto de datos para quedarse con los nombres de los meses y los beneficios de los meses con balance positivo.

data_final = data_final %>%
  filter(Balance == "positivo") %>% 
  select(Mes, Beneficios)

Ejercicio 2

Crear data frame con base de datos

Dat_Med <-read.table("clipboard", header = TRUE, sep = ",")

##Visión general del data frame

skim(Dat_Med)
Data summary
Name Dat_Med
Number of rows 14
Number of columns 6
_______________________
Column type frequency:
character 2
numeric 4
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
nombre 0 1 14 31 0 14 0
sexo 0 1 1 1 0 2 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
edad 0 1.00 38.21 15.62 18.00 24.75 35.00 49.75 68.00 ▇▅▃▅▂
peso 1 0.93 70.92 16.13 51.00 61.00 65.00 78.00 109.00 ▇▅▅▂▂
altura 0 1.00 1.77 0.12 1.58 1.70 1.75 1.84 1.98 ▆▇▆▃▃
colesterol 1 0.93 220.23 39.85 148.00 194.00 210.00 249.00 280.00 ▂▇▂▅▅
glimpse(Dat_Med)
## Rows: 14
## Columns: 6
## $ nombre     <chr> "José Luis Martínez Izquierdo", "Rosa Díaz Díaz", "Javier G…
## $ edad       <int> 18, 32, 24, 35, 46, 68, 51, 22, 35, 46, 53, 58, 27, 20
## $ sexo       <chr> "H", "M", "H", "M", "M", "H", "H", "M", "H", "H", "M", "H",…
## $ peso       <int> 85, 65, NA, 65, 51, 66, 62, 60, 90, 75, 55, 78, 109, 61
## $ altura     <dbl> 1.79, 1.73, 1.81, 1.70, 1.58, 1.74, 1.72, 1.66, 1.94, 1.85,…
## $ colesterol <int> 182, 232, 191, 200, 148, 249, 276, NA, 241, 280, 262, 198, …

Crear nueva columna

Dat_Med2 <- mutate(Dat_Med, IMC = peso/altura)
View(Dat_Med2)

Crear nueva variable

Dat_Med3 <- Dat_Med2 %>% mutate(Obesidad = cut(Dat_Med2$IMC, breaks = c(-Inf,18.5,24.5,30,Inf), labels = c("Bajo peso", "Saludable", "Sobrepeso", "Obeso"), right = TRUE))
View(Dat_Med3)

Ordenar data frame

Dat_Med3 %>% select(nombre, sexo, everything())
##                             nombre sexo edad peso altura colesterol      IMC
## 1     José Luis Martínez Izquierdo    H   18   85   1.79        182 47.48603
## 2                   Rosa Díaz Díaz    M   32   65   1.73        232 37.57225
## 3            Javier Garcia Sánchez    H   24   NA   1.81        191       NA
## 4              Carmen López Pinzón    M   35   65   1.70        200 38.23529
## 5             Marisa López Collado    M   46   51   1.58        148 32.27848
## 6                Antonio Ruiz Cruz    H   68   66   1.74        249 37.93103
## 7          Antonio Fernández Ocaña    H   51   62   1.72        276 36.04651
## 8            Pilar Martín González    M   22   60   1.66         NA 36.14458
## 9             Pedro Gálvez Tenorio    H   35   90   1.94        241 46.39175
## 10         Santiago Reillo Manzano    H   46   75   1.85        280 40.54054
## 11           Macarena Álvarez Luna    M   53   55   1.62        262 33.95062
## 12                 José María Sanz    H   58   78   1.87        198 41.71123
## 13 Miguel Angel Cuadrado Gutiérrez    H   27  109   1.98        210 55.05051
## 14           Carolina Rubio Moreno    M   20   61   1.77        194 34.46328
##    Obesidad
## 1     Obeso
## 2     Obeso
## 3      <NA>
## 4     Obeso
## 5     Obeso
## 6     Obeso
## 7     Obeso
## 8     Obeso
## 9     Obeso
## 10    Obeso
## 11    Obeso
## 12    Obeso
## 13    Obeso
## 14    Obeso

Eliminar datos faltantes

Dat_Med3 %>% na.omit(coleterol)
##                             nombre edad sexo peso altura colesterol      IMC
## 1     José Luis Martínez Izquierdo   18    H   85   1.79        182 47.48603
## 2                   Rosa Díaz Díaz   32    M   65   1.73        232 37.57225
## 4              Carmen López Pinzón   35    M   65   1.70        200 38.23529
## 5             Marisa López Collado   46    M   51   1.58        148 32.27848
## 6                Antonio Ruiz Cruz   68    H   66   1.74        249 37.93103
## 7          Antonio Fernández Ocaña   51    H   62   1.72        276 36.04651
## 9             Pedro Gálvez Tenorio   35    H   90   1.94        241 46.39175
## 10         Santiago Reillo Manzano   46    H   75   1.85        280 40.54054
## 11           Macarena Álvarez Luna   53    M   55   1.62        262 33.95062
## 12                 José María Sanz   58    H   78   1.87        198 41.71123
## 13 Miguel Angel Cuadrado Gutiérrez   27    H  109   1.98        210 55.05051
## 14           Carolina Rubio Moreno   20    M   61   1.77        194 34.46328
##    Obesidad
## 1     Obeso
## 2     Obeso
## 4     Obeso
## 5     Obeso
## 6     Obeso
## 7     Obeso
## 9     Obeso
## 10    Obeso
## 11    Obeso
## 12    Obeso
## 13    Obeso
## 14    Obeso

Ordenar base de datos según nombre

Dat_Med3 %>% arrange(Dat_Med3, nombre)
##                             nombre edad sexo peso altura colesterol      IMC
## 1          Antonio Fernández Ocaña   51    H   62   1.72        276 36.04651
## 2                Antonio Ruiz Cruz   68    H   66   1.74        249 37.93103
## 3              Carmen López Pinzón   35    M   65   1.70        200 38.23529
## 4            Carolina Rubio Moreno   20    M   61   1.77        194 34.46328
## 5            Javier Garcia Sánchez   24    H   NA   1.81        191       NA
## 6     José Luis Martínez Izquierdo   18    H   85   1.79        182 47.48603
## 7                  José María Sanz   58    H   78   1.87        198 41.71123
## 8            Macarena Álvarez Luna   53    M   55   1.62        262 33.95062
## 9             Marisa López Collado   46    M   51   1.58        148 32.27848
## 10 Miguel Angel Cuadrado Gutiérrez   27    H  109   1.98        210 55.05051
## 11            Pedro Gálvez Tenorio   35    H   90   1.94        241 46.39175
## 12           Pilar Martín González   22    M   60   1.66         NA 36.14458
## 13                  Rosa Díaz Díaz   32    M   65   1.73        232 37.57225
## 14         Santiago Reillo Manzano   46    H   75   1.85        280 40.54054
##    Obesidad
## 1     Obeso
## 2     Obeso
## 3     Obeso
## 4     Obeso
## 5      <NA>
## 6     Obeso
## 7     Obeso
## 8     Obeso
## 9     Obeso
## 10    Obeso
## 11    Obeso
## 12    Obeso
## 13    Obeso
## 14    Obeso

Base de datos con solo Mujeres

Dat_MedM <- Dat_Med3 %>% filter(sexo == "M")
View(Dat_MedM)

Base de datos con Hombres > 30 años

Dat_MedH30 <- Dat_Med3 %>% filter(sexo == "H", edad>30)
View(Dat_MedH30)

Base de datos anónima

Dat_MedA <- Dat_Med3 %>% select(-nombre)
View(Dat_MedA)