library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.1     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.3     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.2     
## ── 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
library(readxl)
library(pastecs)
## 
## Attaching package: 'pastecs'
## 
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## 
## The following object is masked from 'package:tidyr':
## 
##     extract
library_patrons.xls <-read_excel("library_patrons.xls")
pastecs::stat.desc(library_patrons.xls$`Registered Patrons`)
##      nbr.val     nbr.null       nbr.na          min          max        range 
## 1.200000e+02 0.000000e+00 0.000000e+00 1.000000e+00 1.646000e+04 1.645900e+04 
##          sum       median         mean      SE.mean CI.mean.0.95          var 
## 1.969690e+05 2.770000e+02 1.641408e+03 2.461175e+02 4.873373e+02 7.268860e+06 
##      std.dev     coef.var 
## 2.696082e+03 1.642542e+00

This information determines the location of our patrons by registered.

library_patrons_clean<-library_patrons.xls |>drop_na(`Registered Patrons`)  
hist(library_patrons_clean$`Registered Patrons`)

library_patrons_clean<-library_patrons_clean %>% mutate(`Registered Patrons`=sqrt(`Registered Patrons`))
hist(library_patrons_clean$"Registered Patrons")