Outline

  • Homework
  • RMarkdown syntax
  • R Notebook formatting
  • NYC Open Data
  • In-class exercise



Homework Questions


library(tidyverse)
library(RSocrata)
library(knitr)
library(DT)

# Import the 2021 DOE Middle School Directory data
middle_school_data <- read.socrata("https://data.cityofnewyork.us/resource/f6s7-vytj.csv")

# Check column names to identify correct fields
names(middle_school_data)
# Select relevant columns for analysis
# Replace `program_description` with a column that exists, e.g., `overview`
middle_school_summary <- middle_school_data %>%
  select(district, name, overview, mathprof) %>% 
# Adjust column names based on data
  filter(!is.na(mathprof))  # Filter out rows where mathprof is NA

# Convert mathprof to numeric
middle_school_summary <- middle_school_summary %>%
  mutate(mathprof = as.numeric(mathprof))
# Display the processed data in a datatable format
datatable(middle_school_summary, 
          options = list(pageLength = 10), 
          caption = "Processed Middle School Data")
# Summarize average math proficiency by district
summary_table <- middle_school_summary %>%
  group_by(district) %>%
  summarize(avg_math_proficiency = mean(mathprof, na.rm = TRUE))

# Display summary table
kable(summary_table, caption = "Average Math Proficiency by District")
Average Math Proficiency by District
district avg_math_proficiency
1 42.55556
2 66.72727
3 47.00000
4 33.42857
5 21.90000
6 36.68421
7 21.76923
8 29.18750
9 25.56000
10 30.42308
11 32.40000
12 19.00000
13 27.88889
14 25.70000
15 52.90909
16 18.83333
17 33.93750
18 28.88889
19 20.50000
20 62.53333
21 47.75000
22 40.40000
23 21.46154
24 51.92857
25 60.33333
26 72.00000
27 37.17391
28 47.46154
29 27.64706
30 54.25000
31 47.06667
32 31.11111
# Plot average math proficiency by district
ggplot(summary_table, aes(x = district, y = avg_math_proficiency)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  labs(
    title = "Average Math Proficiency by District",
    x = "District",
    y = "Average Math Proficiency"
  ) +
  theme_minimal()

LS0tCnRpdGxlOiAiUiBOb3RlYm9va3MgJiBOWUMgT3BlbiBEYXRhIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRoZW1lOiB5ZXRpCiAgICB0b2M6IHRydWUKICAgIHRvY19kZXB0aDogMwogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgCiAgICAgICAgICAgICAgICAgICAgICBxdWlldGx5ID0gVFJVRSwgCiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgd2FybmluZyA9IEZBTFNFKQpgYGAKCiMjIE91dGxpbmUKCi0gICBIb21ld29yawotICAgUk1hcmtkb3duIHN5bnRheAotICAgUiBOb3RlYm9vayBmb3JtYXR0aW5nCi0gICBOWUMgT3BlbiBEYXRhCi0gICBJbi1jbGFzcyBleGVyY2lzZQoKPC9icj4gPC9icj4KCiMjIEhvbWV3b3JrIFF1ZXN0aW9ucwoKPC9icj4KCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCByZXN1bHRzPSdoaWRlJ30KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoUlNvY3JhdGEpCmxpYnJhcnkoa25pdHIpCmxpYnJhcnkoRFQpCgojIEltcG9ydCB0aGUgMjAyMSBET0UgTWlkZGxlIFNjaG9vbCBEaXJlY3RvcnkgZGF0YQptaWRkbGVfc2Nob29sX2RhdGEgPC0gcmVhZC5zb2NyYXRhKCJodHRwczovL2RhdGEuY2l0eW9mbmV3eW9yay51cy9yZXNvdXJjZS9mNnM3LXZ5dGouY3N2IikKCiMgQ2hlY2sgY29sdW1uIG5hbWVzIHRvIGlkZW50aWZ5IGNvcnJlY3QgZmllbGRzCm5hbWVzKG1pZGRsZV9zY2hvb2xfZGF0YSkKCmBgYAoKYGBge3J9CiMgU2VsZWN0IHJlbGV2YW50IGNvbHVtbnMgZm9yIGFuYWx5c2lzCiMgUmVwbGFjZSBgcHJvZ3JhbV9kZXNjcmlwdGlvbmAgd2l0aCBhIGNvbHVtbiB0aGF0IGV4aXN0cywgZS5nLiwgYG92ZXJ2aWV3YAptaWRkbGVfc2Nob29sX3N1bW1hcnkgPC0gbWlkZGxlX3NjaG9vbF9kYXRhICU+JQogIHNlbGVjdChkaXN0cmljdCwgbmFtZSwgb3ZlcnZpZXcsIG1hdGhwcm9mKSAlPiUgCiMgQWRqdXN0IGNvbHVtbiBuYW1lcyBiYXNlZCBvbiBkYXRhCiAgZmlsdGVyKCFpcy5uYShtYXRocHJvZikpICAjIEZpbHRlciBvdXQgcm93cyB3aGVyZSBtYXRocHJvZiBpcyBOQQoKIyBDb252ZXJ0IG1hdGhwcm9mIHRvIG51bWVyaWMKbWlkZGxlX3NjaG9vbF9zdW1tYXJ5IDwtIG1pZGRsZV9zY2hvb2xfc3VtbWFyeSAlPiUKICBtdXRhdGUobWF0aHByb2YgPSBhcy5udW1lcmljKG1hdGhwcm9mKSkKCmBgYAoKYGBge3J9CiMgRGlzcGxheSB0aGUgcHJvY2Vzc2VkIGRhdGEgaW4gYSBkYXRhdGFibGUgZm9ybWF0CmRhdGF0YWJsZShtaWRkbGVfc2Nob29sX3N1bW1hcnksIAogICAgICAgICAgb3B0aW9ucyA9IGxpc3QocGFnZUxlbmd0aCA9IDEwKSwgCiAgICAgICAgICBjYXB0aW9uID0gIlByb2Nlc3NlZCBNaWRkbGUgU2Nob29sIERhdGEiKQoKYGBgCgpgYGB7cn0KIyBTdW1tYXJpemUgYXZlcmFnZSBtYXRoIHByb2ZpY2llbmN5IGJ5IGRpc3RyaWN0CnN1bW1hcnlfdGFibGUgPC0gbWlkZGxlX3NjaG9vbF9zdW1tYXJ5ICU+JQogIGdyb3VwX2J5KGRpc3RyaWN0KSAlPiUKICBzdW1tYXJpemUoYXZnX21hdGhfcHJvZmljaWVuY3kgPSBtZWFuKG1hdGhwcm9mLCBuYS5ybSA9IFRSVUUpKQoKIyBEaXNwbGF5IHN1bW1hcnkgdGFibGUKa2FibGUoc3VtbWFyeV90YWJsZSwgY2FwdGlvbiA9ICJBdmVyYWdlIE1hdGggUHJvZmljaWVuY3kgYnkgRGlzdHJpY3QiKQpgYGAKCmBgYHtyfQojIFBsb3QgYXZlcmFnZSBtYXRoIHByb2ZpY2llbmN5IGJ5IGRpc3RyaWN0CmdncGxvdChzdW1tYXJ5X3RhYmxlLCBhZXMoeCA9IGRpc3RyaWN0LCB5ID0gYXZnX21hdGhfcHJvZmljaWVuY3kpKSArCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIGZpbGwgPSAic3RlZWxibHVlIikgKwogIGxhYnMoCiAgICB0aXRsZSA9ICJBdmVyYWdlIE1hdGggUHJvZmljaWVuY3kgYnkgRGlzdHJpY3QiLAogICAgeCA9ICJEaXN0cmljdCIsCiAgICB5ID0gIkF2ZXJhZ2UgTWF0aCBQcm9maWNpZW5jeSIKICApICsKICB0aGVtZV9taW5pbWFsKCkKYGBgCg==