Code
library(tidyverse)Warning: package 'tidyverse' was built under R version 4.2.2
Warning: package 'ggplot2' was built under R version 4.2.3
Warning: package 'tibble' was built under R version 4.2.3
Warning: package 'tidyr' was built under R version 4.2.2
Warning: package 'purrr' was built under R version 4.2.2
Warning: package 'stringr' was built under R version 4.2.3
Warning: package 'forcats' was built under R version 4.2.2
Warning: package 'lubridate' was built under R version 4.2.2
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.1 ✔ tibble 3.2.1
✔ lubridate 1.9.2 ✔ tidyr 1.3.0
✔ purrr 1.0.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
Code
library(ggplot2)
# Base mínima por si no existe:
if (!exists("BaseSal")) {
suppressWarnings({
if (!exists("Salaries")) {
library(readxl)
if (file.exists(ruta_salaries)) {
Salaries <- readxl::read_excel(ruta_salaries)
} else {
# muestra didáctica si no hay archivo
Salaries <- tibble(
rank = sample(c("AsstProf","AssocProf","Prof"), 120, TRUE),
sex = sample(c("Female","Male"), 120, TRUE),
`yrs.service` = sample(1:30, 120, TRUE),
salary = round(rlnorm(120, 11, 0.25), 0)
)
}
}
BaseSal <- dplyr::select(Salaries, dplyr::any_of(c("rank","sex","yrs.service","salary")))
})
}
