Tabla <- data.frame(
Mes= c("Mayo", "Junio", "Julio"),
Ingresos= c(45000, 41500, 51200),
Gastos= c(33400, 35400, 35600)
)
Tabla
## Mes Ingresos Gastos
## 1 Mayo 45000 33400
## 2 Junio 41500 35400
## 3 Julio 51200 35600
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Tabla2 <- mutate(Tabla, Impuestos= c(6450,6300,7100))
Tabla2
## Mes Ingresos Gastos Impuestos
## 1 Mayo 45000 33400 6450
## 2 Junio 41500 35400 6300
## 3 Julio 51200 35600 7100
3.Nueva fila con nuevo mes y datos
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ readr 2.1.5
## ✔ ggplot2 3.5.1 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Tabla3 <- Tabla2 %>% add_row( Mes = "Agosto", Ingresos = 49700, Gastos = 36300, Impuestos = 6850)
Tabla3
## Mes Ingresos Gastos Impuestos
## 1 Mayo 45000 33400 6450
## 2 Junio 41500 35400 6300
## 3 Julio 51200 35600 7100
## 4 Agosto 49700 36300 6850
Tabla3$Ingresos<- replace (Tabla3$Ingresos,Tabla3$Ingresos==51200, 50400)
Tabla3
## Mes Ingresos Gastos Impuestos
## 1 Mayo 45000 33400 6450
## 2 Junio 41500 35400 6300
## 3 Julio 50400 35600 7100
## 4 Agosto 49700 36300 6850
Tabla3 <- mutate(Tabla3, Beneficios= Ingresos - Gastos - Impuestos)
Tabla3
## Mes Ingresos Gastos Impuestos Beneficios
## 1 Mayo 45000 33400 6450 5150
## 2 Junio 41500 35400 6300 -200
## 3 Julio 50400 35600 7100 7700
## 4 Agosto 49700 36300 6850 6550
Tabla3 <- Tabla3 %>%
mutate(Balance = factor(ifelse(Beneficios > 0,"Positivo","Negativo")))
Tabla3
## Mes Ingresos Gastos Impuestos Beneficios Balance
## 1 Mayo 45000 33400 6450 5150 Positivo
## 2 Junio 41500 35400 6300 -200 Negativo
## 3 Julio 50400 35600 7100 7700 Positivo
## 4 Agosto 49700 36300 6850 6550 Positivo
Tabla_filtrada <- Tabla3 %>%
filter(Balance == "Positivo") %>%
select(Mes, Beneficios)
Tabla_filtrada
## Mes Beneficios
## 1 Mayo 5150
## 2 Julio 7700
## 3 Agosto 6550
library(readr)
url <- "https://raw.githubusercontent.com/jairoayala1212/Database/main/Medicos.csv"
Medicos <- read_csv(url)
## Rows: 14 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): nombre, sexo
## dbl (4): edad, peso, altura, colesterol
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
print(head(Medicos))
## # A tibble: 6 × 6
## nombre edad sexo peso altura colesterol
## <chr> <dbl> <chr> <dbl> <dbl> <dbl>
## 1 José Luis Martínez Izquierdo 18 H 85 1.79 182
## 2 Rosa Díaz Díaz 32 M 65 1.73 232
## 3 Javier Garcia Sánchez 24 H NA 1.81 191
## 4 Carmen López Pinzón 35 M 65 1.7 200
## 5 Marisa López Collado 46 M 51 1.58 148
## 6 Antonio Ruiz Cruz 68 H 66 1.74 249
str(Medicos)
## spc_tbl_ [14 × 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ nombre : chr [1:14] "José Luis Martínez Izquierdo" "Rosa Díaz Díaz" "Javier Garcia Sánchez" "Carmen López Pinzón" ...
## $ edad : num [1:14] 18 32 24 35 46 68 51 22 35 46 ...
## $ sexo : chr [1:14] "H" "M" "H" "M" ...
## $ peso : num [1:14] 85 65 NA 65 51 66 62 60 90 75 ...
## $ altura : num [1:14] 1.79 1.73 1.81 1.7 1.58 1.74 1.72 1.66 1.94 1.85 ...
## $ colesterol: num [1:14] 182 232 191 200 148 249 276 NA 241 280 ...
## - attr(*, "spec")=
## .. cols(
## .. nombre = col_character(),
## .. edad = col_double(),
## .. sexo = col_character(),
## .. peso = col_double(),
## .. altura = col_double(),
## .. colesterol = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
dim(Medicos)
## [1] 14 6
colnames(Medicos)
## [1] "nombre" "edad" "sexo" "peso" "altura"
## [6] "colesterol"
summary(Medicos)
## nombre edad sexo peso
## Length:14 Min. :18.00 Length:14 Min. : 51.00
## Class :character 1st Qu.:24.75 Class :character 1st Qu.: 61.00
## Mode :character Median :35.00 Mode :character Median : 65.00
## Mean :38.21 Mean : 70.92
## 3rd Qu.:49.75 3rd Qu.: 78.00
## Max. :68.00 Max. :109.00
## NA's :1
## altura colesterol
## Min. :1.580 Min. :148.0
## 1st Qu.:1.705 1st Qu.:194.0
## Median :1.755 Median :210.0
## Mean :1.769 Mean :220.2
## 3rd Qu.:1.840 3rd Qu.:249.0
## Max. :1.980 Max. :280.0
## NA's :1
library(dplyr)
Medicos <- Medicos %>%
mutate(IMC = peso / (altura^2))
Medicos
## # A tibble: 14 × 7
## nombre edad sexo peso altura colesterol IMC
## <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 José Luis Martínez Izquierdo 18 H 85 1.79 182 26.5
## 2 Rosa Díaz Díaz 32 M 65 1.73 232 21.7
## 3 Javier Garcia Sánchez 24 H NA 1.81 191 NA
## 4 Carmen López Pinzón 35 M 65 1.7 200 22.5
## 5 Marisa López Collado 46 M 51 1.58 148 20.4
## 6 Antonio Ruiz Cruz 68 H 66 1.74 249 21.8
## 7 Antonio Fernández Ocaña 51 H 62 1.72 276 21.0
## 8 Pilar Martín González 22 M 60 1.66 NA 21.8
## 9 Pedro Gálvez Tenorio 35 H 90 1.94 241 23.9
## 10 Santiago Reillo Manzano 46 H 75 1.85 280 21.9
## 11 Macarena Álvarez Luna 53 M 55 1.62 262 21.0
## 12 José María Sanz 58 H 78 1.87 198 22.3
## 13 Miguel Angel Cuadrado Gutiérrez 27 H 109 1.98 210 27.8
## 14 Carolina Rubio Moreno 20 M 61 1.77 194 19.5
Medicos <- Medicos %>%
mutate(obesidad = case_when(
IMC < 18.5 ~ "Bajo peso",
IMC >= 18.5 & IMC <= 24.5 ~ "Saludable",
IMC > 24.5 & IMC <= 30 ~ "Sobrepeso",
IMC > 30 ~ "Obeso"
))
Medicos
## # A tibble: 14 × 8
## nombre edad sexo peso altura colesterol IMC obesidad
## <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 José Luis Martínez Izquie… 18 H 85 1.79 182 26.5 Sobrepe…
## 2 Rosa Díaz Díaz 32 M 65 1.73 232 21.7 Saludab…
## 3 Javier Garcia Sánchez 24 H NA 1.81 191 NA <NA>
## 4 Carmen López Pinzón 35 M 65 1.7 200 22.5 Saludab…
## 5 Marisa López Collado 46 M 51 1.58 148 20.4 Saludab…
## 6 Antonio Ruiz Cruz 68 H 66 1.74 249 21.8 Saludab…
## 7 Antonio Fernández Ocaña 51 H 62 1.72 276 21.0 Saludab…
## 8 Pilar Martín González 22 M 60 1.66 NA 21.8 Saludab…
## 9 Pedro Gálvez Tenorio 35 H 90 1.94 241 23.9 Saludab…
## 10 Santiago Reillo Manzano 46 H 75 1.85 280 21.9 Saludab…
## 11 Macarena Álvarez Luna 53 M 55 1.62 262 21.0 Saludab…
## 12 José María Sanz 58 H 78 1.87 198 22.3 Saludab…
## 13 Miguel Angel Cuadrado Gut… 27 H 109 1.98 210 27.8 Sobrepe…
## 14 Carolina Rubio Moreno 20 M 61 1.77 194 19.5 Saludab…
Medicos <- Medicos %>%
select(nombre, sexo, edad, everything())
Medicos
## # A tibble: 14 × 8
## nombre sexo edad peso altura colesterol IMC obesidad
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 José Luis Martínez Izquie… H 18 85 1.79 182 26.5 Sobrepe…
## 2 Rosa Díaz Díaz M 32 65 1.73 232 21.7 Saludab…
## 3 Javier Garcia Sánchez H 24 NA 1.81 191 NA <NA>
## 4 Carmen López Pinzón M 35 65 1.7 200 22.5 Saludab…
## 5 Marisa López Collado M 46 51 1.58 148 20.4 Saludab…
## 6 Antonio Ruiz Cruz H 68 66 1.74 249 21.8 Saludab…
## 7 Antonio Fernández Ocaña H 51 62 1.72 276 21.0 Saludab…
## 8 Pilar Martín González M 22 60 1.66 NA 21.8 Saludab…
## 9 Pedro Gálvez Tenorio H 35 90 1.94 241 23.9 Saludab…
## 10 Santiago Reillo Manzano H 46 75 1.85 280 21.9 Saludab…
## 11 Macarena Álvarez Luna M 53 55 1.62 262 21.0 Saludab…
## 12 José María Sanz H 58 78 1.87 198 22.3 Saludab…
## 13 Miguel Angel Cuadrado Gut… H 27 109 1.98 210 27.8 Sobrepe…
## 14 Carolina Rubio Moreno M 20 61 1.77 194 19.5 Saludab…
Medicos <- Medicos %>%
filter(!is.na(colesterol))
Medicos
## # A tibble: 13 × 8
## nombre sexo edad peso altura colesterol IMC obesidad
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 José Luis Martínez Izquie… H 18 85 1.79 182 26.5 Sobrepe…
## 2 Rosa Díaz Díaz M 32 65 1.73 232 21.7 Saludab…
## 3 Javier Garcia Sánchez H 24 NA 1.81 191 NA <NA>
## 4 Carmen López Pinzón M 35 65 1.7 200 22.5 Saludab…
## 5 Marisa López Collado M 46 51 1.58 148 20.4 Saludab…
## 6 Antonio Ruiz Cruz H 68 66 1.74 249 21.8 Saludab…
## 7 Antonio Fernández Ocaña H 51 62 1.72 276 21.0 Saludab…
## 8 Pedro Gálvez Tenorio H 35 90 1.94 241 23.9 Saludab…
## 9 Santiago Reillo Manzano H 46 75 1.85 280 21.9 Saludab…
## 10 Macarena Álvarez Luna M 53 55 1.62 262 21.0 Saludab…
## 11 José María Sanz H 58 78 1.87 198 22.3 Saludab…
## 12 Miguel Angel Cuadrado Gut… H 27 109 1.98 210 27.8 Sobrepe…
## 13 Carolina Rubio Moreno M 20 61 1.77 194 19.5 Saludab…
Medicos <- Medicos %>%
arrange(nombre)
Medicos
## # A tibble: 13 × 8
## nombre sexo edad peso altura colesterol IMC obesidad
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 Antonio Fernández Ocaña H 51 62 1.72 276 21.0 Saludab…
## 2 Antonio Ruiz Cruz H 68 66 1.74 249 21.8 Saludab…
## 3 Carmen López Pinzón M 35 65 1.7 200 22.5 Saludab…
## 4 Carolina Rubio Moreno M 20 61 1.77 194 19.5 Saludab…
## 5 Javier Garcia Sánchez H 24 NA 1.81 191 NA <NA>
## 6 José Luis Martínez Izquie… H 18 85 1.79 182 26.5 Sobrepe…
## 7 José María Sanz H 58 78 1.87 198 22.3 Saludab…
## 8 Macarena Álvarez Luna M 53 55 1.62 262 21.0 Saludab…
## 9 Marisa López Collado M 46 51 1.58 148 20.4 Saludab…
## 10 Miguel Angel Cuadrado Gut… H 27 109 1.98 210 27.8 Sobrepe…
## 11 Pedro Gálvez Tenorio H 35 90 1.94 241 23.9 Saludab…
## 12 Rosa Díaz Díaz M 32 65 1.73 232 21.7 Saludab…
## 13 Santiago Reillo Manzano H 46 75 1.85 280 21.9 Saludab…
Medicos_mujeres <- Medicos %>%
filter(sexo == "M")
print(head(Medicos_mujeres))
## # A tibble: 5 × 8
## nombre sexo edad peso altura colesterol IMC obesidad
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 Carmen López Pinzón M 35 65 1.7 200 22.5 Saludable
## 2 Carolina Rubio Moreno M 20 61 1.77 194 19.5 Saludable
## 3 Macarena Álvarez Luna M 53 55 1.62 262 21.0 Saludable
## 4 Marisa López Collado M 46 51 1.58 148 20.4 Saludable
## 5 Rosa Díaz Díaz M 32 65 1.73 232 21.7 Saludable
Medicos_mujeres
## # A tibble: 5 × 8
## nombre sexo edad peso altura colesterol IMC obesidad
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 Carmen López Pinzón M 35 65 1.7 200 22.5 Saludable
## 2 Carolina Rubio Moreno M 20 61 1.77 194 19.5 Saludable
## 3 Macarena Álvarez Luna M 53 55 1.62 262 21.0 Saludable
## 4 Marisa López Collado M 46 51 1.58 148 20.4 Saludable
## 5 Rosa Díaz Díaz M 32 65 1.73 232 21.7 Saludable
Medicos_hombres_mayores_30 <- Medicos %>%
filter(sexo == "H" & edad > 30)
Medicos_hombres_mayores_30
## # A tibble: 5 × 8
## nombre sexo edad peso altura colesterol IMC obesidad
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 Antonio Fernández Ocaña H 51 62 1.72 276 21.0 Saludable
## 2 Antonio Ruiz Cruz H 68 66 1.74 249 21.8 Saludable
## 3 José María Sanz H 58 78 1.87 198 22.3 Saludable
## 4 Pedro Gálvez Tenorio H 35 90 1.94 241 23.9 Saludable
## 5 Santiago Reillo Manzano H 46 75 1.85 280 21.9 Saludable
Medicos_anonimos <- Medicos %>%
select(-nombre)
Medicos_anonimos
## # A tibble: 13 × 7
## sexo edad peso altura colesterol IMC obesidad
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 H 51 62 1.72 276 21.0 Saludable
## 2 H 68 66 1.74 249 21.8 Saludable
## 3 M 35 65 1.7 200 22.5 Saludable
## 4 M 20 61 1.77 194 19.5 Saludable
## 5 H 24 NA 1.81 191 NA <NA>
## 6 H 18 85 1.79 182 26.5 Sobrepeso
## 7 H 58 78 1.87 198 22.3 Saludable
## 8 M 53 55 1.62 262 21.0 Saludable
## 9 M 46 51 1.58 148 20.4 Saludable
## 10 H 27 109 1.98 210 27.8 Sobrepeso
## 11 H 35 90 1.94 241 23.9 Saludable
## 12 M 32 65 1.73 232 21.7 Saludable
## 13 H 46 75 1.85 280 21.9 Saludable