library(tidyverse)  
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── 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) 

district <- read_excel("District (4).xls")
library(pastecs) 
## 
## Attaching package: 'pastecs'
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## The following object is masked from 'package:tidyr':
## 
##     extract
 pastecs::stat.desc(district$DZCAMPUS)
##      nbr.val     nbr.null       nbr.na          min          max        range 
## 1207.0000000    0.0000000    0.0000000    1.0000000  273.0000000  272.0000000 
##          sum       median         mean      SE.mean CI.mean.0.95          var 
## 8966.0000000    3.0000000    7.4283347    0.4850072    0.9515516  283.9250008 
##      std.dev     coef.var 
##   16.8500742    2.2683515
distclean <- district |> select(DZCAMPUS) |> drop_na()
hist(distclean$DZCAMPUS) 

hist(log(distclean$DZCAMPUS))