library(readxl)
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✔ ggplot2 3.3.2 ✔ purrr 0.3.4
## ✔ tibble 3.0.4 ✔ dplyr 1.0.2
## ✔ tidyr 1.1.2 ✔ stringr 1.4.0
## ✔ readr 1.4.0 ✔ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library
## function (package, help, pos = 2, lib.loc = NULL, character.only = FALSE,
## logical.return = FALSE, warn.conflicts, quietly = FALSE,
## verbose = getOption("verbose"), mask.ok, exclude, include.only,
## attach.required = missing(include.only))
## {
## conf.ctrl <- getOption("conflicts.policy")
## if (is.character(conf.ctrl))
## conf.ctrl <- switch(conf.ctrl, strict = list(error = TRUE,
## warn = FALSE), depends.ok = list(error = TRUE, generics.ok = TRUE,
## can.mask = c("base", "methods", "utils", "grDevices",
## "graphics", "stats"), depends.ok = TRUE), warning(gettextf("unknown conflict policy: %s",
## sQuote(conf.ctrl)), call. = FALSE, domain = NA))
## if (!is.list(conf.ctrl))
## conf.ctrl <- NULL
## stopOnConflict <- isTRUE(conf.ctrl$error)
## if (missing(warn.conflicts))
## warn.conflicts <- if (isFALSE(conf.ctrl$warn))
## FALSE
## else TRUE
## if ((!missing(include.only)) && (!missing(exclude)))
## stop(gettext("only one of 'include.only' and 'exclude' can be used"),
## call. = FALSE, domain = NA)
## testRversion <- function(pkgInfo, pkgname, pkgpath) {
## if (is.null(built <- pkgInfo$Built))
## stop(gettextf("package %s has not been installed properly\n",
## sQuote(pkgname)), call. = FALSE, domain = NA)
## R_version_built_under <- as.numeric_version(built$R)
## if (R_version_built_under < "3.0.0")
## stop(gettextf("package %s was built before R 3.0.0: please re-install it",
## sQuote(pkgname)), call. = FALSE, domain = NA)
## current <- getRversion()
## if (length(Rdeps <- pkgInfo$Rdepends2)) {
## for (dep in Rdeps) if (length(dep) > 1L) {
## target <- dep$version
## res <- do.call(dep$op, if (is.character(target))
## list(as.numeric(R.version[["svn rev"]]), as.numeric(sub("^r",
## "", target)))
## else list(current, as.numeric_version(target)))
## if (!res)
## stop(gettextf("This is R %s, package %s needs %s %s",
## current, sQuote(pkgname), dep$op, target),
## call. = FALSE, domain = NA)
## }
## }
## if (R_version_built_under > current)
## warning(gettextf("package %s was built under R version %s",
## sQuote(pkgname), as.character(built$R)), call. = FALSE,
## domain = NA)
## platform <- built$Platform
## r_arch <- .Platform$r_arch
## if (.Platform$OS.type == "unix") {
## }
## else {
## if (nzchar(platform) && !grepl("mingw", platform))
## stop(gettextf("package %s was built for %s",
## sQuote(pkgname), platform), call. = FALSE,
## domain = NA)
## }
## if (nzchar(r_arch) && file.exists(file.path(pkgpath,
## "libs")) && !file.exists(file.path(pkgpath, "libs",
## r_arch)))
## stop(gettextf("package %s is not installed for 'arch = %s'",
## sQuote(pkgname), r_arch), call. = FALSE, domain = NA)
## }
## checkNoGenerics <- function(env, pkg) {
## nenv <- env
## ns <- .getNamespace(as.name(pkg))
## if (!is.null(ns))
## nenv <- asNamespace(ns)
## if (exists(".noGenerics", envir = nenv, inherits = FALSE))
## TRUE
## else {
## !any(startsWith(names(env), ".__T"))
## }
## }
## checkConflicts <- function(package, pkgname, pkgpath, nogenerics,
## env) {
## dont.mind <- c("last.dump", "last.warning", ".Last.value",
## ".Random.seed", ".Last.lib", ".onDetach", ".packageName",
## ".noGenerics", ".required", ".no_S3_generics", ".Depends",
## ".requireCachedGenerics")
## sp <- search()
## lib.pos <- which(sp == pkgname)
## ob <- names(as.environment(lib.pos))
## if (!nogenerics) {
## these <- ob[startsWith(ob, ".__T__")]
## gen <- gsub(".__T__(.*):([^:]+)", "\\1", these)
## from <- gsub(".__T__(.*):([^:]+)", "\\2", these)
## gen <- gen[from != package]
## ob <- ob[!(ob %in% gen)]
## }
## ipos <- seq_along(sp)[-c(lib.pos, match(c("Autoloads",
## "CheckExEnv"), sp, 0L))]
## cpos <- NULL
## conflicts <- vector("list", 0)
## for (i in ipos) {
## obj.same <- match(names(as.environment(i)), ob, nomatch = 0L)
## if (any(obj.same > 0L)) {
## same <- ob[obj.same]
## same <- same[!(same %in% dont.mind)]
## Classobjs <- which(startsWith(same, ".__"))
## if (length(Classobjs))
## same <- same[-Classobjs]
## same.isFn <- function(where) vapply(same, exists,
## NA, where = where, mode = "function", inherits = FALSE)
## same <- same[same.isFn(i) == same.isFn(lib.pos)]
## not.Ident <- function(ch, TRAFO = identity, ...) vapply(ch,
## function(.) !identical(TRAFO(get(., i)), TRAFO(get(.,
## lib.pos)), ...), NA)
## if (length(same))
## same <- same[not.Ident(same)]
## if (length(same) && identical(sp[i], "package:base"))
## same <- same[not.Ident(same, ignore.environment = TRUE)]
## if (length(same)) {
## conflicts[[sp[i]]] <- same
## cpos[sp[i]] <- i
## }
## }
## }
## if (length(conflicts)) {
## if (stopOnConflict) {
## emsg <- ""
## pkg <- names(conflicts)
## notOK <- vector("list", 0)
## for (i in seq_along(conflicts)) {
## pkgname <- sub("^package:", "", pkg[i])
## if (pkgname %in% canMaskEnv$canMask)
## next
## same <- conflicts[[i]]
## if (is.list(mask.ok))
## myMaskOK <- mask.ok[[pkgname]]
## else myMaskOK <- mask.ok
## if (isTRUE(myMaskOK))
## same <- NULL
## else if (is.character(myMaskOK))
## same <- setdiff(same, myMaskOK)
## if (length(same)) {
## notOK[[pkg[i]]] <- same
## msg <- .maskedMsg(sort(same), pkg = sQuote(pkg[i]),
## by = cpos[i] < lib.pos)
## emsg <- paste(emsg, msg, sep = "\n")
## }
## }
## if (length(notOK)) {
## msg <- gettextf("Conflicts attaching package %s:\n%s",
## sQuote(package), emsg)
## stop(errorCondition(msg, package = package,
## conflicts = conflicts, class = "packageConflictError"))
## }
## }
## if (warn.conflicts) {
## packageStartupMessage(gettextf("\nAttaching package: %s\n",
## sQuote(package)), domain = NA)
## pkg <- names(conflicts)
## for (i in seq_along(conflicts)) {
## msg <- .maskedMsg(sort(conflicts[[i]]), pkg = sQuote(pkg[i]),
## by = cpos[i] < lib.pos)
## packageStartupMessage(msg, domain = NA)
## }
## }
## }
## }
## if (verbose && quietly)
## message("'verbose' and 'quietly' are both true; being verbose then ..")
## if (!missing(package)) {
## if (is.null(lib.loc))
## lib.loc <- .libPaths()
## lib.loc <- lib.loc[dir.exists(lib.loc)]
## if (!character.only)
## package <- as.character(substitute(package))
## if (length(package) != 1L)
## stop("'package' must be of length 1")
## if (is.na(package) || (package == ""))
## stop("invalid package name")
## pkgname <- paste0("package:", package)
## newpackage <- is.na(match(pkgname, search()))
## if (newpackage) {
## pkgpath <- find.package(package, lib.loc, quiet = TRUE,
## verbose = verbose)
## if (length(pkgpath) == 0L) {
## if (length(lib.loc) && !logical.return)
## stop(packageNotFoundError(package, lib.loc,
## sys.call()))
## txt <- if (length(lib.loc))
## gettextf("there is no package called %s", sQuote(package))
## else gettext("no library trees found in 'lib.loc'")
## if (logical.return) {
## warning(txt, domain = NA)
## return(FALSE)
## }
## else stop(txt, domain = NA)
## }
## which.lib.loc <- normalizePath(dirname(pkgpath),
## "/", TRUE)
## pfile <- system.file("Meta", "package.rds", package = package,
## lib.loc = which.lib.loc)
## if (!nzchar(pfile))
## stop(gettextf("%s is not a valid installed package",
## sQuote(package)), domain = NA)
## pkgInfo <- readRDS(pfile)
## testRversion(pkgInfo, package, pkgpath)
## if (is.character(pos)) {
## npos <- match(pos, search())
## if (is.na(npos)) {
## warning(gettextf("%s not found on search path, using pos = 2",
## sQuote(pos)), domain = NA)
## pos <- 2
## }
## else pos <- npos
## }
## deps <- unique(names(pkgInfo$Depends))
## depsOK <- isTRUE(conf.ctrl$depends.ok)
## if (depsOK) {
## canMaskEnv <- dynGet("__library_can_mask__",
## NULL)
## if (is.null(canMaskEnv)) {
## canMaskEnv <- new.env()
## canMaskEnv$canMask <- union("base", conf.ctrl$can.mask)
## "__library_can_mask__" <- canMaskEnv
## }
## canMaskEnv$canMask <- unique(c(package, deps,
## canMaskEnv$canMask))
## }
## else canMaskEnv <- NULL
## if (attach.required)
## .getRequiredPackages2(pkgInfo, quietly = quietly)
## cr <- conflictRules(package)
## if (missing(mask.ok))
## mask.ok <- cr$mask.ok
## if (missing(exclude))
## exclude <- cr$exclude
## if (packageHasNamespace(package, which.lib.loc)) {
## if (isNamespaceLoaded(package)) {
## newversion <- as.numeric_version(pkgInfo$DESCRIPTION["Version"])
## oldversion <- as.numeric_version(getNamespaceVersion(package))
## if (newversion != oldversion) {
## tryCatch(unloadNamespace(package), error = function(e) {
## P <- if (!is.null(cc <- conditionCall(e)))
## paste("Error in", deparse(cc)[1L], ": ")
## else "Error : "
## stop(gettextf("Package %s version %s cannot be unloaded:\n %s",
## sQuote(package), oldversion, paste0(P,
## conditionMessage(e), "\n")), domain = NA)
## })
## }
## }
## tt <- tryCatch({
## attr(package, "LibPath") <- which.lib.loc
## ns <- loadNamespace(package, lib.loc)
## env <- attachNamespace(ns, pos = pos, deps,
## exclude, include.only)
## }, error = function(e) {
## P <- if (!is.null(cc <- conditionCall(e)))
## paste(" in", deparse(cc)[1L])
## else ""
## msg <- gettextf("package or namespace load failed for %s%s:\n %s",
## sQuote(package), P, conditionMessage(e))
## if (logical.return)
## message(paste("Error:", msg), domain = NA)
## else stop(msg, call. = FALSE, domain = NA)
## })
## if (logical.return && is.null(tt))
## return(FALSE)
## attr(package, "LibPath") <- NULL
## {
## on.exit(detach(pos = pos))
## nogenerics <- !.isMethodsDispatchOn() || checkNoGenerics(env,
## package)
## if (isFALSE(conf.ctrl$generics.ok) || (stopOnConflict &&
## !isTRUE(conf.ctrl$generics.ok)))
## nogenerics <- TRUE
## if (stopOnConflict || (warn.conflicts && !exists(".conflicts.OK",
## envir = env, inherits = FALSE)))
## checkConflicts(package, pkgname, pkgpath,
## nogenerics, ns)
## on.exit()
## if (logical.return)
## return(TRUE)
## else return(invisible(.packages()))
## }
## }
## else stop(gettextf("package %s does not have a namespace and should be re-installed",
## sQuote(package)), domain = NA)
## }
## if (verbose && !newpackage)
## warning(gettextf("package %s already present in search()",
## sQuote(package)), domain = NA)
## }
## else if (!missing(help)) {
## if (!character.only)
## help <- as.character(substitute(help))
## pkgName <- help[1L]
## pkgPath <- find.package(pkgName, lib.loc, verbose = verbose)
## docFiles <- c(file.path(pkgPath, "Meta", "package.rds"),
## file.path(pkgPath, "INDEX"))
## if (file.exists(vignetteIndexRDS <- file.path(pkgPath,
## "Meta", "vignette.rds")))
## docFiles <- c(docFiles, vignetteIndexRDS)
## pkgInfo <- vector("list", 3L)
## readDocFile <- function(f) {
## if (basename(f) %in% "package.rds") {
## txt <- readRDS(f)$DESCRIPTION
## if ("Encoding" %in% names(txt)) {
## to <- if (Sys.getlocale("LC_CTYPE") == "C")
## "ASCII//TRANSLIT"
## else ""
## tmp <- try(iconv(txt, from = txt["Encoding"],
## to = to))
## if (!inherits(tmp, "try-error"))
## txt <- tmp
## else warning("'DESCRIPTION' has an 'Encoding' field and re-encoding is not possible",
## call. = FALSE)
## }
## nm <- paste0(names(txt), ":")
## formatDL(nm, txt, indent = max(nchar(nm, "w")) +
## 3L)
## }
## else if (basename(f) %in% "vignette.rds") {
## txt <- readRDS(f)
## if (is.data.frame(txt) && nrow(txt))
## cbind(basename(gsub("\\.[[:alpha:]]+$", "",
## txt$File)), paste(txt$Title, paste0(rep.int("(source",
## NROW(txt)), ifelse(nzchar(txt$PDF), ", pdf",
## ""), ")")))
## else NULL
## }
## else readLines(f)
## }
## for (i in which(file.exists(docFiles))) pkgInfo[[i]] <- readDocFile(docFiles[i])
## y <- list(name = pkgName, path = pkgPath, info = pkgInfo)
## class(y) <- "packageInfo"
## return(y)
## }
## else {
## if (is.null(lib.loc))
## lib.loc <- .libPaths()
## db <- matrix(character(), nrow = 0L, ncol = 3L)
## nopkgs <- character()
## for (lib in lib.loc) {
## a <- .packages(all.available = TRUE, lib.loc = lib)
## for (i in sort(a)) {
## file <- system.file("Meta", "package.rds", package = i,
## lib.loc = lib)
## title <- if (nzchar(file)) {
## txt <- readRDS(file)
## if (is.list(txt))
## txt <- txt$DESCRIPTION
## if ("Encoding" %in% names(txt)) {
## to <- if (Sys.getlocale("LC_CTYPE") == "C")
## "ASCII//TRANSLIT"
## else ""
## tmp <- try(iconv(txt, txt["Encoding"], to,
## "?"))
## if (!inherits(tmp, "try-error"))
## txt <- tmp
## else warning("'DESCRIPTION' has an 'Encoding' field and re-encoding is not possible",
## call. = FALSE)
## }
## txt["Title"]
## }
## else NA
## if (is.na(title))
## title <- " ** No title available ** "
## db <- rbind(db, cbind(i, lib, title))
## }
## if (length(a) == 0L)
## nopkgs <- c(nopkgs, lib)
## }
## dimnames(db) <- list(NULL, c("Package", "LibPath", "Title"))
## if (length(nopkgs) && !missing(lib.loc)) {
## pkglist <- paste(sQuote(nopkgs), collapse = ", ")
## msg <- sprintf(ngettext(length(nopkgs), "library %s contains no packages",
## "libraries %s contain no packages"), pkglist)
## warning(msg, domain = NA)
## }
## y <- list(header = NULL, results = db, footer = NULL)
## class(y) <- "libraryIQR"
## return(y)
## }
## if (logical.return)
## TRUE
## else invisible(.packages())
## }
## <bytecode: 0x559e6c4961c0>
## <environment: namespace:base>
SAT_2022_EBRW <- read_excel("SAT_2022_EBRW.xlsx")%>%
mutate(EBRW_Benchmark_PCT = as.numeric(EBRW_Benchmark_PCT))
## Warning: Problem with `mutate()` input `EBRW_Benchmark_PCT`.
## ℹ NAs introduced by coercion
## ℹ Input `EBRW_Benchmark_PCT` is `as.numeric(EBRW_Benchmark_PCT)`.
## Warning in mask$eval_all_mutate(dots[[i]]): NAs introduced by coercion
SAT_2022_Math <- read_excel("SAT_2022_Math.xlsx")%>%
mutate(Math_Benchmark_PCT = as.numeric(Math_Benchmark_PCT))
## Warning: Problem with `mutate()` input `Math_Benchmark_PCT`.
## ℹ NAs introduced by coercion
## ℹ Input `Math_Benchmark_PCT` is `as.numeric(Math_Benchmark_PCT)`.
## Warning: NAs introduced by coercion
School_Enrollment <- read_excel("School_Enrollment.xlsx")
#Snider Range
Snider_Range <- SAT_2022_EBRW %>%
left_join(SAT_2022_Math, by = "Schl_Name") %>%
left_join(School_Enrollment, by = "Schl_Name") %>%
select(Schl_Name, Free_Reduced_Price_Meals, Paid_Meals, TOTAL_ENROLLMENT, Percent_FRL, EBRW_Total_Tested, EBRW_Benchmark_PCT, Math_Total_Tested, Math_Benchmark_PCT) %>%
filter(Percent_FRL <= 0.50, Percent_FRL >= 0.46) %>%
arrange(desc(EBRW_Benchmark_PCT))
Snider_Range
## # A tibble: 25 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Springs … 211 238 449 0.470
## 2 Greencas… 231 244 475 0.486
## 3 Central … 516 584 1100 0.469
## 4 Mitchell… 219 234 453 0.483
## 5 Greensbu… 340 376 716 0.475
## 6 Argos Co… 156 179 335 0.466
## 7 Plymouth… 508 572 1080 0.470
## 8 Attica H… 142 165 307 0.463
## 9 Seymour … 771 834 1605 0.480
## 10 Portage … 1065 1213 2278 0.468
## # … with 15 more rows, and 4 more variables: EBRW_Total_Tested <dbl>,
## # EBRW_Benchmark_PCT <dbl>, Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
Snider_Range %>%
arrange(desc(Math_Benchmark_PCT))
## # A tibble: 25 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Springs … 211 238 449 0.470
## 2 Greencas… 231 244 475 0.486
## 3 Central … 516 584 1100 0.469
## 4 Attica H… 142 165 307 0.463
## 5 Argos Co… 156 179 335 0.466
## 6 Plymouth… 508 572 1080 0.470
## 7 Alexandr… 358 394 752 0.476
## 8 Greensbu… 340 376 716 0.475
## 9 Achieve … 234 272 506 0.462
## 10 Seymour … 771 834 1605 0.480
## # … with 15 more rows, and 4 more variables: EBRW_Total_Tested <dbl>,
## # EBRW_Benchmark_PCT <dbl>, Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
Out of the schools that fall between 46-50% of students with free reduced lunch, Snider High School falls in 13th out of 25 schools in the percentage of EBRW scores above the benchmark, and 13th out of 25 schools in the percentage of Math scores above the benchmark. #Northside Range
NorthSide_Range <- SAT_2022_EBRW %>%
left_join(SAT_2022_Math, by = "Schl_Name") %>%
left_join(School_Enrollment, by = "Schl_Name") %>%
select(Schl_Name, Free_Reduced_Price_Meals, Paid_Meals, TOTAL_ENROLLMENT, Percent_FRL, EBRW_Total_Tested, EBRW_Benchmark_PCT, Math_Total_Tested, Math_Benchmark_PCT) %>%
filter(Percent_FRL <= 0.69, Percent_FRL >= 0.65) %>%
arrange(desc(EBRW_Benchmark_PCT))
NorthSide_Range
## # A tibble: 16 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Richmond… 871 456 1327 0.656
## 2 Purdue P… 371 192 563 0.659
## 3 Decatur … 1333 678 2011 0.663
## 4 Beech Gr… 640 328 968 0.661
## 5 North Si… 1027 486 1513 0.679
## 6 Wayne Hi… 903 476 1379 0.655
## 7 Indiana … 2004 1052 3056 0.656
## 8 Merrillv… 1351 653 2004 0.674
## 9 Dugger U… 347 186 533 0.651
## 10 Anderson… 1207 630 1837 0.657
## 11 Frankfor… 605 288 893 0.677
## 12 Cannelto… 157 82 239 0.657
## 13 Emmerich… 153 72 225 0.68
## 14 Arsenal … 1402 720 2122 0.661
## 15 Rise Up … 112 56 168 0.667
## 16 Communit… 65 32 97 0.670
## # … with 4 more variables: EBRW_Total_Tested <dbl>, EBRW_Benchmark_PCT <dbl>,
## # Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
NorthSide_Range %>%
arrange(desc(Math_Benchmark_PCT))
## # A tibble: 16 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Merrillv… 1351 653 2004 0.674
## 2 Purdue P… 371 192 563 0.659
## 3 Decatur … 1333 678 2011 0.663
## 4 Beech Gr… 640 328 968 0.661
## 5 Richmond… 871 456 1327 0.656
## 6 North Si… 1027 486 1513 0.679
## 7 Anderson… 1207 630 1837 0.657
## 8 Wayne Hi… 903 476 1379 0.655
## 9 Frankfor… 605 288 893 0.677
## 10 Indiana … 2004 1052 3056 0.656
## 11 Dugger U… 347 186 533 0.651
## 12 Rise Up … 112 56 168 0.667
## 13 Emmerich… 153 72 225 0.68
## 14 Arsenal … 1402 720 2122 0.661
## 15 Cannelto… 157 82 239 0.657
## 16 Communit… 65 32 97 0.670
## # … with 4 more variables: EBRW_Total_Tested <dbl>, EBRW_Benchmark_PCT <dbl>,
## # Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
#Northrop_Range
Northrop_Range <- SAT_2022_EBRW %>%
left_join(SAT_2022_Math, by = "Schl_Name") %>%
left_join(School_Enrollment, by = "Schl_Name") %>%
select(Schl_Name, Free_Reduced_Price_Meals, Paid_Meals, TOTAL_ENROLLMENT, Percent_FRL, EBRW_Total_Tested, EBRW_Benchmark_PCT, Math_Total_Tested, Math_Benchmark_PCT) %>%
filter(Percent_FRL <= 0.56, Percent_FRL >= 0.52) %>%
arrange(desc(EBRW_Benchmark_PCT))
Northrop_Range
## # A tibble: 28 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Terre Ha… 848 727 1575 0.538
## 2 Parke He… 205 163 368 0.557
## 3 LaPorte … 944 860 1804 0.523
## 4 Paoli Jr… 335 266 601 0.557
## 5 South Ri… 191 171 362 0.528
## 6 Twin Lak… 343 312 655 0.524
## 7 Jay Coun… 676 622 1298 0.521
## 8 Terre Ha… 880 771 1651 0.533
## 9 Blackfor… 390 349 739 0.528
## 10 Rushvill… 344 316 660 0.521
## # … with 18 more rows, and 4 more variables: EBRW_Total_Tested <dbl>,
## # EBRW_Benchmark_PCT <dbl>, Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
Northrop_Range %>%
arrange(desc(Math_Benchmark_PCT))
## # A tibble: 28 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Jay Coun… 676 622 1298 0.521
## 2 Twin Lak… 343 312 655 0.524
## 3 South Ri… 191 171 362 0.528
## 4 Paoli Jr… 335 266 601 0.557
## 5 Terre Ha… 848 727 1575 0.538
## 6 Wabash H… 256 215 471 0.544
## 7 Crawford… 378 318 696 0.543
## 8 LaPorte … 944 860 1804 0.523
## 9 Terre Ha… 880 771 1651 0.533
## 10 Parke He… 205 163 368 0.557
## # … with 18 more rows, and 4 more variables: EBRW_Total_Tested <dbl>,
## # EBRW_Benchmark_PCT <dbl>, Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
#Caroll Range
Caroll_Range <- SAT_2022_EBRW %>%
left_join(SAT_2022_Math, by = "Schl_Name") %>%
left_join(School_Enrollment, by = "Schl_Name") %>%
select(Schl_Name, Free_Reduced_Price_Meals, Paid_Meals, TOTAL_ENROLLMENT, Percent_FRL, EBRW_Total_Tested, EBRW_Benchmark_PCT, Math_Total_Tested, Math_Benchmark_PCT) %>%
filter(Percent_FRL <= 0.19, Percent_FRL >= 0.15) %>%
arrange(desc(EBRW_Benchmark_PCT))
Caroll_Range
## # A tibble: 10 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Signatur… 62 321 383 0.162
## 2 Hamilton… 521 2909 3430 0.152
## 3 Tri-West… 118 507 625 0.189
## 4 Westfiel… 447 2180 2627 0.170
## 5 Leo Juni… 237 1154 1391 0.170
## 6 Hanover … 143 620 763 0.187
## 7 Carroll … 425 2050 2475 0.172
## 8 East Cen… 212 1057 1269 0.167
## 9 Adams Ce… 66 302 368 0.179
## 10 Prairie … 78 354 432 0.181
## # … with 4 more variables: EBRW_Total_Tested <dbl>, EBRW_Benchmark_PCT <dbl>,
## # Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
Caroll_Range %>%
arrange(desc(Math_Benchmark_PCT))
## # A tibble: 10 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Signatur… 62 321 383 0.162
## 2 Hamilton… 521 2909 3430 0.152
## 3 Westfiel… 447 2180 2627 0.170
## 4 Carroll … 425 2050 2475 0.172
## 5 Hanover … 143 620 763 0.187
## 6 Leo Juni… 237 1154 1391 0.170
## 7 Adams Ce… 66 302 368 0.179
## 8 Tri-West… 118 507 625 0.189
## 9 East Cen… 212 1057 1269 0.167
## 10 Prairie … 78 354 432 0.181
## # … with 4 more variables: EBRW_Total_Tested <dbl>, EBRW_Benchmark_PCT <dbl>,
## # Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
#SouthSide
SouthSide_Range <- SAT_2022_EBRW %>%
left_join(SAT_2022_Math, by = "Schl_Name") %>%
left_join(School_Enrollment, by = "Schl_Name") %>%
select(Schl_Name, Free_Reduced_Price_Meals, Paid_Meals, TOTAL_ENROLLMENT, Percent_FRL, EBRW_Total_Tested, EBRW_Benchmark_PCT, Math_Total_Tested, Math_Benchmark_PCT) %>%
filter(Percent_FRL <= 0.77, Percent_FRL >= 0.73, EBRW_Total_Tested > 8) %>%
arrange(desc(EBRW_Benchmark_PCT))
SouthSide_Range
## # A tibble: 13 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Southpor… 1794 597 2391 0.750
## 2 Vigo Vir… 252 88 340 0.741
## 3 GEO Next… 137 42 179 0.765
## 4 IN Math … 529 159 688 0.769
## 5 East Chi… 831 278 1109 0.749
## 6 South Si… 1047 338 1385 0.756
## 7 Excel Ce… 226 83 309 0.731
## 8 Excel Ce… 217 77 294 0.738
## 9 James an… 297 98 395 0.752
## 10 Phalen V… 388 128 516 0.752
## 11 Christel… 534 171 705 0.757
## 12 Academy … 205 64 269 0.762
## 13 E.O. Mun… 67 22 89 0.753
## # … with 4 more variables: EBRW_Total_Tested <dbl>, EBRW_Benchmark_PCT <dbl>,
## # Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
SouthSide_Range %>%
arrange(desc(Math_Benchmark_PCT))
## # A tibble: 13 x 9
## Schl_Name Free_Reduced_Pr… Paid_Meals TOTAL_ENROLLMENT Percent_FRL
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Southpor… 1794 597 2391 0.750
## 2 IN Math … 529 159 688 0.769
## 3 East Chi… 831 278 1109 0.749
## 4 South Si… 1047 338 1385 0.756
## 5 GEO Next… 137 42 179 0.765
## 6 Academy … 205 64 269 0.762
## 7 Vigo Vir… 252 88 340 0.741
## 8 E.O. Mun… 67 22 89 0.753
## 9 Phalen V… 388 128 516 0.752
## 10 Excel Ce… 226 83 309 0.731
## 11 Excel Ce… 217 77 294 0.738
## 12 James an… 297 98 395 0.752
## 13 Christel… 534 171 705 0.757
## # … with 4 more variables: EBRW_Total_Tested <dbl>, EBRW_Benchmark_PCT <dbl>,
## # Math_Total_Tested <dbl>, Math_Benchmark_PCT <dbl>
Out of the schools that fall between 73-77% of students with free reduced lunch, South Side High School falls in 6th out of 13 schools in the percentage of EBRW scores above the benchmark, and 4th out of 13 schools in the percentage of Math scores above the benchmark.
TheBigFive <- SAT_2022_EBRW %>%
left_join(SAT_2022_Math, by = "Schl_Name") %>%
left_join(School_Enrollment, by = "Schl_Name") %>%
filter(Schl_Name == "R Nelson Snider High School" | Schl_Name == "Wayne High School" | Schl_Name == "South Side High School" | Schl_Name == "North Side High School" | Schl_Name == "Northrop High School") %>%
select(Schl_Name, EBRW_Benchmark_PCT, Math_Benchmark_PCT, Percent_FRL)
TheBigFive
## # A tibble: 5 x 4
## Schl_Name EBRW_Benchmark_PCT Math_Benchmark_PCT Percent_FRL
## <chr> <dbl> <dbl> <dbl>
## 1 North Side High School 0.345 0.129 0.679
## 2 R Nelson Snider High School 0.433 0.238 0.481
## 3 South Side High School 0.211 0.0744 0.756
## 4 Wayne High School 0.34 0.12 0.655
## 5 Northrop High School 0.411 0.185 0.541
ggplot(TheBigFive, aes(x = EBRW_Benchmark_PCT, y = Math_Benchmark_PCT, color = Schl_Name)) +
geom_point() +
labs(
x = "Math Benchmark Percentage",
y = "English Benchmark Percentage",
fill = "School",
title = "Math and English Benchmark % of these 5 schools") + theme(axis.text.x = element_text(angle = 60, hjust = 1))