2023-2024 Science Benchmark Data:

Research Question: What are the trends in student performance across 6th, 7th, and 8th graders on science benchmark assessments over the academic year? Which specific questions or standards show consistent struggles or growth across all three benchmarks?

1. Load necessary libraries:

This part sets the foundation for the analysis, making sure all necessary tools are in place before moving on to data cleaning, exploration, and visualization. Without loading these libraries, the subsequent analysis wouldn’t be possible, so it’s a crucial preparatory step.

## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## 
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
## 
##     smiths
## corrplot 0.92 loaded
## Warning: package 'gt' was built under R version 4.4.1
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout

2. Explore the data

2.1 Load the data

This section establishes a solid base for my future exploration, cleaning, and analysis of student performance trends. I am now prepared to dive deeper into identifying trends and insights across benchmarks.

  • Reading 6th, 7th, and 8th Grade Benchmarks:

    • The read_excel() function is used to load the data for different grade levels and benchmarks. This includes data from three assessments for each grade, allowing us to analyze performance trends over time.

    • The benchmark sheets are labeled accordingly (e.g., “6th Grade Benchmark 1”, “7th Grade Benchmark 2”), and the data is read for each grade level separately.

  • Cleaning 7th Grade Data:

Here, I am importing the benchmark data for 6th, 7th, and 8th grades from an Excel file, pulling in data for each of the three benchmarks administered over the academic year.

## New names:
## New names:
## New names:
## New names:
## New names:
## New names:
## New names:
## New names:
## New names:
## • `` -> `...1`
## • `` -> `...25`
## • `` -> `...26`

2.2 Load all data into a list:

This section is about optimizing the way we handle multiple datasets by loading them into a list structure. This approach provides several benefits, especially for simplifying future data manipulation and ensuring consistency.

## New names:
## New names:
## New names:
## New names:
## New names:
## New names:
## New names:
## New names:
## New names:
## • `` -> `...1`
## • `` -> `...25`
## • `` -> `...26`

The repeated “New names” in the message above indicates an issue with column naming, similar to the previous section. It might be related to renaming variables or cleaning the column names, which will be done later once all the data is loaded into the list.

2.3 Examine the data structure

The goal here is to quickly inspect the first few rows of each dataset in benchmarks_list to confirm that the data has been loaded correctly and to get an initial sense of the structure.

## $`6th Grade Benchmark 1`
## # A tibble: 6 × 26
##   ...1   `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610` `611`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      86    82    88    88    96    57    57    61    73    56    57    87   
## 3 2      70    60    68    69    52    38    17    44    41    40    25    35   
## 4 3      30    39    44    46    40    14    30    26    36    43    35    22   
## 5 4      56    46    48    65    60    19    26    22    55    18    19    22   
## 6 5      56    67    44    57    60    43    48    44    36    25    30    35   
## # ℹ 13 more variables: `612` <chr>, `613` <chr>, `614` <chr>, `615` <chr>,
## #   `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>, `620` <chr>,
## #   `621` <chr>, `673` <chr>, ...25 <chr>, ...26 <chr>
## 
## $`6th Grade Benchmark 2`
## # A tibble: 6 × 26
##   ...1   `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610` `611`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      97    80    82    100   89    53    83    74    84    57    56    88   
## 3 2      56    69    67    74    63    58    31    41    64    35    30    69   
## 4 3      52    38    45    70    56    11    13    41    32    40    40    44   
## 5 4      52    42    49    62    48    32    35    37    32    32    30    38   
## 6 5      66    76    49    74    59    48    22    19    56    25    30    25   
## # ℹ 13 more variables: `612` <chr>, `613` <chr>, `614` <chr>, `615` <chr>,
## #   `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>, `620` <chr>,
## #   `621` <chr>, `673` <chr>, ...25 <chr>, ...26 <chr>
## 
## $` 6th Grade Benchmark 3`
## # A tibble: 6 × 26
##   ...1   `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610` `611`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      100   97    100   97    97    63    81    76    96    50    45    82.0…
## 3 2      76    86    73    70    78    60    47    64    55    20    25    60.7 
## 4 3      45    79    66    70    49    30    31    60    59    35    30    46.4 
## 5 4      69    54    52    74    63    41    50    48    63    41    45    60.7 
## 6 5      80    79    69    70    67    49    39    28    55    30    30    64.3 
## # ℹ 13 more variables: `612` <chr>, `613` <chr>, `614` <chr>, `615` <chr>,
## #   `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>, `620` <chr>,
## #   `621` <chr>, `673` <chr>, ...25 <chr>, ...26 <chr>
## 
## $`7th Grade Benchmark 1`
## # A tibble: 6 × 24
##   ...1   `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710` `711`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      3     3     0     12    30    18    21    23.8  11    9     15    39   
## 3 2      52    27    31    42    57    36    46    42.9  29    46    29    30   
## 4 3      28    57    19    50    47    36    33    47.6  54    28    43    61   
## 5 4      62    50    54    54    37    50    46    14.3  39    37    0     39   
## 6 5      59    53    42    50    23    46    58    28.6  39    37    15    17   
## # ℹ 11 more variables: `712` <chr>, `713` <chr>, `714` <chr>, `715` <chr>,
## #   `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>, `720` <chr>,
## #   `721` <chr>, ...24 <chr>
## 
## $`7th Grade Benchmark 2`
## # A tibble: 6 × 24
##   ...1   `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710` `711`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      0     57    4     65    23    20    25    26    12    46    34    30   
## 3 2      40    61    36    62    60    35    33    30    40    37    12    44   
## 4 3      13    61    8     69    67    70    50    44    64    46    34    52   
## 5 4      57    71    60    69    43    54    33    44    40    28    12    37   
## 6 5      50    61    52    73    47    39    21    48    24    0     23    48   
## # ℹ 11 more variables: `712` <chr>, `713` <chr>, `714` <chr>, `715` <chr>,
## #   `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>, `720` <chr>,
## #   `721` <chr>, ...24 <chr>
## 
## $`7th Grade Benchmark 3`
## # A tibble: 6 × 24
##   ...1   `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710` `711`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      18    70    37    65    25    29    29    18.5  36    23    50    27.6 
## 3 2      39    68    37    79    50    42    33    44.4  27    45    38    31   
## 4 3      89    84    93    68    79    63    48    48.1  73    45    50    65.5 
## 5 4      57    90    41    72    61    54    38    48.1  55    67    50    48.3 
## 6 5      68    78    44    86    57    33    29    37    27    34    25    31   
## # ℹ 11 more variables: `712` <chr>, `713` <chr>, `714` <chr>, `715` <chr>,
## #   `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>, `720` <chr>,
## #   `721` <chr>, ...24 <chr>
## 
## $`8th Grade Benchmark 1`
## # A tibble: 6 × 21
##   ...1   `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810` `811`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      90    69    86    20.7  28.6  38.5  49    44    22.2  43    31    39   
## 3 2      80    79    83    79.3  60.7  57.7  61    56    63    100   77    49   
## 4 3      72    83    76    69.5  46.4  30.8  46    41    33    15    16    36   
## 5 4      83    79    90    75.9… 53.6  46.2  68    63    51.9  43    31    58   
## 6 5      76    76    69    65.5  35.7  53.8  60    56    63    15    54    47   
## # ℹ 8 more variables: `812` <chr>, `813` <chr>, `814` <chr>, `815` <chr>,
## #   `816` <chr>, `817` <chr>, `818` <chr>, ...21 <chr>
## 
## $`8th Grade Benchmark 2`
## # A tibble: 6 × 21
##   ...1   `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810` `811`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      87    92    86    48    40    63    64    70    85    29    17    52   
## 3 2      90    96    83    80    74    70    77    78    92    43    25    61   
## 4 3      77    71    90    61    70    59    77    57    88    43    34    57   
## 5 4      97    83    97    77    59    74    82    57    85    29    25    35   
## 6 5      73    71    93    74    66    74    64    61    81    43    34    48   
## # ℹ 8 more variables: `812` <chr>, `813` <chr>, `814` <chr>, `815` <chr>,
## #   `816` <chr>, `817` <chr>, `818` <chr>, ...21 <chr>
## 
## $`8th Grade Benchmark 3`
## # A tibble: 6 × 21
##   ...1   `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810` `811`
##   <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Quest… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co… % Co…
## 2 1      <NA>  <NA>  <NA>  <NA>  62    28    <NA>  <NA>  61    17    50    <NA> 
## 3 2      <NA>  <NA>  <NA>  <NA>  86    84    <NA>  <NA>  79    34    34    <NA> 
## 4 3      <NA>  <NA>  <NA>  <NA>  93    88    <NA>  <NA>  75    50    42    <NA> 
## 5 4      <NA>  <NA>  <NA>  <NA>  79    56    <NA>  <NA>  61    0     50    <NA> 
## 6 5      <NA>  <NA>  <NA>  <NA>  90    92    <NA>  <NA>  93    0     50    <NA> 
## # ℹ 8 more variables: `812` <chr>, `813` <chr>, `814` <chr>, `815` <chr>,
## #   `816` <chr>, `817` <chr>, `818` <chr>, ...21 <chr>

The list structure ($-sign notation) shows that each dataset is being listed by its sheet name (e.g., $6th Grade Benchmark 1, $7th Grade Benchmark 2`, etc.).

The other outputs are the first few rows of each dataset, displaying the varaibles for each.

## tibble [28 × 21] (S3: tbl_df/tbl/data.frame)
##  $ ...1 : chr [1:28] "Question" "1" "2" "3" ...
##  $ 800  : chr [1:28] "% Correct" NA NA NA ...
##  $ 801  : chr [1:28] "% Correct" NA NA NA ...
##  $ 802  : chr [1:28] "% Correct" NA NA NA ...
##  $ 803  : chr [1:28] "% Correct" NA NA NA ...
##  $ 804  : chr [1:28] "% Correct" "62" "86" "93" ...
##  $ 805  : chr [1:28] "% Correct" "28" "84" "88" ...
##  $ 806  : chr [1:28] "% Correct" NA NA NA ...
##  $ 807  : chr [1:28] "% Correct" NA NA NA ...
##  $ 808  : chr [1:28] "% Correct" "61" "79" "75" ...
##  $ 809  : chr [1:28] "% Correct" "17" "34" "50" ...
##  $ 810  : chr [1:28] "% Correct" "50" "34" "42" ...
##  $ 811  : chr [1:28] "% Correct" NA NA NA ...
##  $ 812  : chr [1:28] "% Correct" NA NA NA ...
##  $ 813  : chr [1:28] "% Correct" "90" "87" "80" ...
##  $ 814  : chr [1:28] "% Correct" NA NA NA ...
##  $ 815  : chr [1:28] "% Correct" NA NA NA ...
##  $ 816  : chr [1:28] "% Correct" NA NA NA ...
##  $ 817  : chr [1:28] "% Correct" NA NA NA ...
##  $ 818  : chr [1:28] "% Correct" "85" "80" "80" ...
##  $ ...21: chr [1:28] "Per Question Average" "56.1428571428571" "69.1428571428571" "72.5714285714286" ...

It appears the % Correct row is part of the data and will interfere with further analysis. I’ll address this issue in the next section by cleaning each tab to prepare for proper visualization and exploration.

  • Key Observations on Data Structure:

    • Column Headers: The first column, which should represent question numbers, lacks a clear label. Renaming it to “Questions” will improve clarity.

    • Subheadings: The remaining columns, currently labeled “% Correct,” need to be renamed to reflect the class numbers (e.g., “600,” “817”) for accurate analysis and easy reference.

    • Tidy Data: Ensuring each variable has its own column and each observation its own row, following tidy data principles, will streamline data manipulation and reduce errors during analysis.

2.4 Visualize Missing Values:

In this section, we assess data quality by visualizing missing values across the benchmark datasets. Identifying missing data early on helps determine if any imputation or cleaning is necessary to ensure reliable analysis.

Findings:

  • 7th Grade Benchmark 2: One column has 96% missing values, indicating potential issues with data collection or formatting.

  • 8th Grade Benchmark 3: Twelve columns contain 96% missing values, with 43.5% of the dataset being present and 56.5% missing. This could significantly affect the analysis if not addressed.

  • Other Datasets: No missing values are detected in the remaining datasets.

2.5 Explore Each Tab:

In this section, we iterate through the first three benchmark datasets (6th Grade Benchmark 1, 6th Grade Benchmark 2, 6th Grade Benchmark 3) and perform the following actions:

  • Remove Redundant Rows: The first row, which contains ‘% Correct,’ is removed as it does not represent relevant data.

  • Rename Columns: The first column is renamed to “Questions,” while the last two columns are renamed “Per_Question_Average” and “Skills” for clarity and consistency.

## tibble [27 × 26] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 600                 : chr [1:27] "86" "70" "30" "56" ...
##  $ 601                 : chr [1:27] "82" "60" "39" "46" ...
##  $ 602                 : chr [1:27] "88" "68" "44" "48" ...
##  $ 603                 : chr [1:27] "88" "69" "46" "65" ...
##  $ 604                 : chr [1:27] "96" "52" "40" "60" ...
##  $ 605                 : chr [1:27] "57" "38" "14" "19" ...
##  $ 606                 : chr [1:27] "57" "17" "30" "26" ...
##  $ 607                 : chr [1:27] "61" "44" "26" "22" ...
##  $ 608                 : chr [1:27] "73" "41" "36" "55" ...
##  $ 609                 : chr [1:27] "56" "40" "43" "18" ...
##  $ 610                 : chr [1:27] "57" "25" "35" "19" ...
##  $ 611                 : chr [1:27] "87" "35" "22" "22" ...
##  $ 612                 : chr [1:27] "69" "42" "15" "42" ...
##  $ 613                 : chr [1:27] "82" "30" "26" "37" ...
##  $ 614                 : chr [1:27] "67" "42" "21" "28" ...
##  $ 615                 : chr [1:27] "86.2" "58.6" "27.6" "24.1" ...
##  $ 616                 : chr [1:27] "78" "50" "21" "46" ...
##  $ 617                 : chr [1:27] "77" "39" "23" "46" ...
##  $ 618                 : chr [1:27] "60.9" "39.1" "17.4" "30.4" ...
##  $ 619                 : chr [1:27] "86.7" "56.7" "23.3" "30" ...
##  $ 620                 : chr [1:27] "77.8" "55.6" "37" "40.7" ...
##  $ 621                 : chr [1:27] "85" "60" "45" "40" ...
##  $ 673                 : chr [1:27] "43" "30" "39" "45" ...
##  $ Per_Question_Average: chr [1:27] "73.9391304347826" "46.1739130434783" "30.4478260869565" "37.6173913043478" ...
##  $ Skills              : chr [1:27] "Question and Problem" "Analyze and Interpret Data/ Cause and Effect" "Construct an Explanations and Design Solutions/ Cause and Effect" "Plan and Carry Out Investigations" ...

We did the same process as previous in the second set of benchmark datasets (4th to 6th in the list, corresponding to the 7th Grade Benchmark 1, 7th Grade Benchmark 2, and 7th Grade Benchmark 3).

## tibble [27 × 24] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 700                 : chr [1:27] "3" "52" "28" "62" ...
##  $ 701                 : chr [1:27] "3" "27" "57" "50" ...
##  $ 702                 : chr [1:27] "0" "31" "19" "54" ...
##  $ 703                 : chr [1:27] "12" "42" "50" "54" ...
##  $ 704                 : chr [1:27] "30" "57" "47" "37" ...
##  $ 705                 : chr [1:27] "18" "36" "36" "50" ...
##  $ 706                 : chr [1:27] "21" "46" "33" "46" ...
##  $ 707                 : chr [1:27] "23.8" "42.9" "47.6" "14.3" ...
##  $ 708                 : chr [1:27] "11" "29" "54" "39" ...
##  $ 709                 : chr [1:27] "9" "46" "28" "37" ...
##  $ 710                 : chr [1:27] "15" "29" "43" "0" ...
##  $ 711                 : chr [1:27] "39" "30" "61" "39" ...
##  $ 712                 : chr [1:27] "18" "57" "68" "43" ...
##  $ 713                 : chr [1:27] "24" "38" "48" "48" ...
##  $ 714                 : chr [1:27] "30" "56" "59" "44" ...
##  $ 715                 : chr [1:27] "7" "37" "13" "63" ...
##  $ 716                 : chr [1:27] "0" "44" "22" "59" ...
##  $ 717                 : chr [1:27] "6.9" "37.9" "55.2" "17.2" ...
##  $ 718                 : chr [1:27] "33" "33" "44" "33" ...
##  $ 719                 : chr [1:27] "14" "28" "59" "52" ...
##  $ 720                 : chr [1:27] "13" "33" "46" "46" ...
##  $ 721                 : chr [1:27] "14" "39" "32" "14" ...
##  $ Per_Question_Average: chr [1:27] "15.6681818181818" "39.5818181818182" "43.1727272727273" "40.9772727272727" ...

Again, here we are cleaning and renaming the last three benchmark datasets (8th Grade Benchmark 1, 8th Grade Benchmark 2, and 8th Grade Benchmark 3)

## tibble [27 × 21] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 800                 : chr [1:27] "90" "80" "72" "83" ...
##  $ 801                 : chr [1:27] "69" "79" "83" "79" ...
##  $ 802                 : chr [1:27] "86" "83" "76" "90" ...
##  $ 803                 : chr [1:27] "20.7" "79.3" "69.5" "75.90000000000001" ...
##  $ 804                 : chr [1:27] "28.6" "60.7" "46.4" "53.6" ...
##  $ 805                 : chr [1:27] "38.5" "57.7" "30.8" "46.2" ...
##  $ 806                 : chr [1:27] "49" "61" "46" "68" ...
##  $ 807                 : chr [1:27] "44" "56" "41" "63" ...
##  $ 808                 : chr [1:27] "22.2" "63" "33" "51.9" ...
##  $ 809                 : chr [1:27] "43" "100" "15" "43" ...
##  $ 810                 : chr [1:27] "31" "77" "16" "31" ...
##  $ 811                 : chr [1:27] "39" "49" "36" "58" ...
##  $ 812                 : chr [1:27] "36" "57" "43" "64" ...
##  $ 813                 : chr [1:27] "32" "39" "32" "21" ...
##  $ 814                 : chr [1:27] "53" "70" "63" "63" ...
##  $ 815                 : chr [1:27] "39" "53" "39" "67" ...
##  $ 816                 : chr [1:27] "81" "85" "77" "85" ...
##  $ 817                 : chr [1:27] "22" "70" "61" "48" ...
##  $ 818                 : chr [1:27] "43" "73" "50" "46" ...
##  $ Per_Question_Average: chr [1:27] "45.6315789473684" "68.0368421052632" "48.9315789473684" "59.8210526315789" ...

By applying these changes, the datasets now have a cleaner, more uniform structure, making further analysis easier and more accurate.

## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         <NA>  <NA>  <NA>  <NA>  62    28    <NA>  <NA>  61    17    50   
## 2 2         <NA>  <NA>  <NA>  <NA>  86    84    <NA>  <NA>  79    34    34   
## 3 3         <NA>  <NA>  <NA>  <NA>  93    88    <NA>  <NA>  75    50    42   
## 4 4         <NA>  <NA>  <NA>  <NA>  79    56    <NA>  <NA>  61    0     50   
## 5 5         <NA>  <NA>  <NA>  <NA>  90    92    <NA>  <NA>  93    0     50   
## 6 6         <NA>  <NA>  <NA>  <NA>  83    84    <NA>  <NA>  79    67    25   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <chr>

Next, I implement a crucial step to ensure the integrity of our data before proceeding with further analysis: checking for any empty data frames within our benchmarks_list.

The primary goal is to identify any data frames that may not contain any rows (i.e., are empty). This is an important quality control step, as empty data frames could indicate issues with data loading or data extraction processes. These empty frames would not provide any useful information for our analysis and could lead to errors if not addressed.

##  6th Grade Benchmark 1  6th Grade Benchmark 2  6th Grade Benchmark 3 
##                  FALSE                  FALSE                  FALSE 
##  7th Grade Benchmark 1  7th Grade Benchmark 2  7th Grade Benchmark 3 
##                  FALSE                  FALSE                  FALSE 
##  8th Grade Benchmark 1  8th Grade Benchmark 2  8th Grade Benchmark 3 
##                  FALSE                  FALSE                  FALSE

The printed output above shows that none of the benchmark datasets are empty. it indicates that all datasets contain data and are ready for further analysis.

The next exploration section plays a crucial role in both understanding the datasets and preparing for more detailed analyses. It highlights not only the overall performance trends but also areas where students may need additional support.

## 
## 
## ### Exploring Benchmark 1 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         86    82    88    88    96    57    57    61    73    56    57   
## 2 2         70    60    68    69    52    38    17    44    41    40    25   
## 3 3         30    39    44    46    40    14    30    26    36    43    35   
## 4 4         56    46    48    65    60    19    26    22    55    18    19   
## 5 5         56    67    44    57    60    43    48    44    36    25    30   
## 6 6         80    78    80    76    60    29    48    48    32    37    30   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <chr>,
## #   Skills <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 26] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 600                 : chr [1:27] "86" "70" "30" "56" ...
##  $ 601                 : chr [1:27] "82" "60" "39" "46" ...
##  $ 602                 : chr [1:27] "88" "68" "44" "48" ...
##  $ 603                 : chr [1:27] "88" "69" "46" "65" ...
##  $ 604                 : chr [1:27] "96" "52" "40" "60" ...
##  $ 605                 : chr [1:27] "57" "38" "14" "19" ...
##  $ 606                 : chr [1:27] "57" "17" "30" "26" ...
##  $ 607                 : chr [1:27] "61" "44" "26" "22" ...
##  $ 608                 : chr [1:27] "73" "41" "36" "55" ...
##  $ 609                 : chr [1:27] "56" "40" "43" "18" ...
##  $ 610                 : chr [1:27] "57" "25" "35" "19" ...
##  $ 611                 : chr [1:27] "87" "35" "22" "22" ...
##  $ 612                 : chr [1:27] "69" "42" "15" "42" ...
##  $ 613                 : chr [1:27] "82" "30" "26" "37" ...
##  $ 614                 : chr [1:27] "67" "42" "21" "28" ...
##  $ 615                 : chr [1:27] "86.2" "58.6" "27.6" "24.1" ...
##  $ 616                 : chr [1:27] "78" "50" "21" "46" ...
##  $ 617                 : chr [1:27] "77" "39" "23" "46" ...
##  $ 618                 : chr [1:27] "60.9" "39.1" "17.4" "30.4" ...
##  $ 619                 : chr [1:27] "86.7" "56.7" "23.3" "30" ...
##  $ 620                 : chr [1:27] "77.8" "55.6" "37" "40.7" ...
##  $ 621                 : chr [1:27] "85" "60" "45" "40" ...
##  $ 673                 : chr [1:27] "43" "30" "39" "45" ...
##  $ Per_Question_Average: chr [1:27] "73.9391304347826" "46.1739130434783" "30.4478260869565" "37.6173913043478" ...
##  $ Skills              : chr [1:27] "Question and Problem" "Analyze and Interpret Data/ Cause and Effect" "Construct an Explanations and Design Solutions/ Cause and Effect" "Plan and Carry Out Investigations" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             600                601                602           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      603                604                605                606           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      607                608                609                610           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      611                612                613                614           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      615                616                617                618           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      619                620                621                673           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##  Per_Question_Average    Skills         
##  Length:27            Length:27         
##  Class :character     Class :character  
##  Mode  :character     Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion
## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###
## 
## 
## ### Exploring Benchmark 2 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         97    80    82    100   89    53    83    74    84    57    56   
## 2 2         56    69    67    74    63    58    31    41    64    35    30   
## 3 3         52    38    45    70    56    11    13    41    32    40    40   
## 4 4         52    42    49    62    48    32    35    37    32    32    30   
## 5 5         66    76    49    74    59    48    22    19    56    25    30   
## 6 6         59    63    67    93    71    48    52    52    60    37    35   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <chr>,
## #   Skills <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 26] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 600                 : chr [1:27] "97" "56" "52" "52" ...
##  $ 601                 : chr [1:27] "80" "69" "38" "42" ...
##  $ 602                 : chr [1:27] "82" "67" "45" "49" ...
##  $ 603                 : chr [1:27] "100" "74" "70" "62" ...
##  $ 604                 : chr [1:27] "89" "63" "56" "48" ...
##  $ 605                 : chr [1:27] "53" "58" "11" "32" ...
##  $ 606                 : chr [1:27] "83" "31" "13" "35" ...
##  $ 607                 : chr [1:27] "74" "41" "41" "37" ...
##  $ 608                 : chr [1:27] "84" "64" "32" "32" ...
##  $ 609                 : chr [1:27] "57" "35" "40" "32" ...
##  $ 610                 : chr [1:27] "56" "30" "40" "30" ...
##  $ 611                 : chr [1:27] "88" "69" "44" "38" ...
##  $ 612                 : chr [1:27] "88" "44" "20" "52" ...
##  $ 613                 : chr [1:27] "88" "50" "38" "50" ...
##  $ 614                 : chr [1:27] "82" "59" "27" "41" ...
##  $ 615                 : chr [1:27] "82" "79" "54" "29" ...
##  $ 616                 : chr [1:27] "78" "56" "37" "23" ...
##  $ 617                 : chr [1:27] "69" "50" "12" "35" ...
##  $ 618                 : chr [1:27] "71" "59" "26" "37" ...
##  $ 619                 : chr [1:27] "82" "57" "29" "64" ...
##  $ 620                 : chr [1:27] "73" "50" "27" "50" ...
##  $ 621                 : chr [1:27] "95" "45" "55" "50" ...
##  $ 673                 : chr [1:27] "45" "35" "25" "30" ...
##  $ Per_Question_Average: chr [1:27] "78.8571428571429" "55.2857142857143" "35.8095238095238" "41.4285714285714" ...
##  $ Skills              : chr [1:27] "Question and Problem" "Analyze and Interpret Data/ Cause and Effect" "Construct an Explanations and Design Solutions/ Cause and Effect" "Plan and Carry Out Investigations" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             600                601                602           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      603                604                605                606           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      607                608                609                610           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      611                612                613                614           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      615                616                617                618           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      619                620                621                673           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##  Per_Question_Average    Skills         
##  Length:27            Length:27         
##  Class :character     Class :character  
##  Mode  :character     Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion

## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###
## 
## 
## ### Exploring Benchmark 3 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         100   97    100   97    97    63    81    76    96    50    45   
## 2 2         76    86    73    70    78    60    47    64    55    20    25   
## 3 3         45    79    66    70    49    30    31    60    59    35    30   
## 4 4         69    54    52    74    63    41    50    48    63    41    45   
## 5 5         80    79    69    70    67    49    39    28    55    30    30   
## 6 6         90    93    83    90    86    67    70    68    67    25    20   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <chr>,
## #   Skills <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 26] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 600                 : chr [1:27] "100" "76" "45" "69" ...
##  $ 601                 : chr [1:27] "97" "86" "79" "54" ...
##  $ 602                 : chr [1:27] "100" "73" "66" "52" ...
##  $ 603                 : chr [1:27] "97" "70" "70" "74" ...
##  $ 604                 : chr [1:27] "97" "78" "49" "63" ...
##  $ 605                 : chr [1:27] "63" "60" "30" "41" ...
##  $ 606                 : chr [1:27] "81" "47" "31" "50" ...
##  $ 607                 : chr [1:27] "76" "64" "60" "48" ...
##  $ 608                 : chr [1:27] "96" "55" "59" "63" ...
##  $ 609                 : chr [1:27] "50" "20" "35" "41" ...
##  $ 610                 : chr [1:27] "45" "25" "30" "45" ...
##  $ 611                 : chr [1:27] "82.09999999999999" "60.7" "46.4" "60.7" ...
##  $ 612                 : chr [1:27] "89.3" "60.7" "39.3" "64.3" ...
##  $ 613                 : chr [1:27] "86.7" "66.7" "53.3" "50" ...
##  $ 614                 : chr [1:27] "78.59999999999999" "53.6" "46.4" "64.3" ...
##  $ 615                 : chr [1:27] "93" "50" "50" "57" ...
##  $ 616                 : chr [1:27] "93" "68" "43" "43" ...
##  $ 617                 : chr [1:27] "72.40000000000001" "58.6" "17.2" "41.4" ...
##  $ 618                 : chr [1:27] "84" "64" "28" "52" ...
##  $ 619                 : chr [1:27] "90" "76" "31" "83" ...
##  $ 620                 : chr [1:27] "76" "80" "44" "92" ...
##  $ 621                 : chr [1:27] "100" "80" "60" "65" ...
##  $ 673                 : chr [1:27] "20" "24" "25" "30" ...
##  $ Per_Question_Average: chr [1:27] "81.17826086956519" "60.7086956521739" "45.1130434782609" "56.6391304347826" ...
##  $ Skills              : chr [1:27] "Question and Problem" "Analyze and Interpret Data/ Cause and Effect" "Construct an Explanations and Design Solutions/ Cause and Effect" "Plan and Carry Out Investigations" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             600                601                602           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      603                604                605                606           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      607                608                609                610           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      611                612                613                614           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      615                616                617                618           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      619                620                621                673           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##  Per_Question_Average    Skills         
##  Length:27            Length:27         
##  Class :character     Class :character  
##  Mode  :character     Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion

## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###
## 
## 
## ### Exploring Benchmark 4 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         3     3     0     12    30    18    21    23.8  11    9     15   
## 2 2         52    27    31    42    57    36    46    42.9  29    46    29   
## 3 3         28    57    19    50    47    36    33    47.6  54    28    43   
## 4 4         62    50    54    54    37    50    46    14.3  39    37    0    
## 5 5         59    53    42    50    23    46    58    28.6  39    37    15   
## 6 6         45    40    42    27    40    27    25    23.8  54    27    15   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 24] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 700                 : chr [1:27] "3" "52" "28" "62" ...
##  $ 701                 : chr [1:27] "3" "27" "57" "50" ...
##  $ 702                 : chr [1:27] "0" "31" "19" "54" ...
##  $ 703                 : chr [1:27] "12" "42" "50" "54" ...
##  $ 704                 : chr [1:27] "30" "57" "47" "37" ...
##  $ 705                 : chr [1:27] "18" "36" "36" "50" ...
##  $ 706                 : chr [1:27] "21" "46" "33" "46" ...
##  $ 707                 : chr [1:27] "23.8" "42.9" "47.6" "14.3" ...
##  $ 708                 : chr [1:27] "11" "29" "54" "39" ...
##  $ 709                 : chr [1:27] "9" "46" "28" "37" ...
##  $ 710                 : chr [1:27] "15" "29" "43" "0" ...
##  $ 711                 : chr [1:27] "39" "30" "61" "39" ...
##  $ 712                 : chr [1:27] "18" "57" "68" "43" ...
##  $ 713                 : chr [1:27] "24" "38" "48" "48" ...
##  $ 714                 : chr [1:27] "30" "56" "59" "44" ...
##  $ 715                 : chr [1:27] "7" "37" "13" "63" ...
##  $ 716                 : chr [1:27] "0" "44" "22" "59" ...
##  $ 717                 : chr [1:27] "6.9" "37.9" "55.2" "17.2" ...
##  $ 718                 : chr [1:27] "33" "33" "44" "33" ...
##  $ 719                 : chr [1:27] "14" "28" "59" "52" ...
##  $ 720                 : chr [1:27] "13" "33" "46" "46" ...
##  $ 721                 : chr [1:27] "14" "39" "32" "14" ...
##  $ Per_Question_Average: chr [1:27] "15.6681818181818" "39.5818181818182" "43.1727272727273" "40.9772727272727" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             700                701                702           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      703                704                705                706           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      707                708                709                710           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      711                712                713                714           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      715                716                717                718           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      719                720                721            Per_Question_Average
##  Length:27          Length:27          Length:27          Length:27           
##  Class :character   Class :character   Class :character   Class :character    
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion

## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###
## 
## 
## ### Exploring Benchmark 5 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         0     57    4     65    23    20    25    26    12    46    34   
## 2 2         40    61    36    62    60    35    33    30    40    37    12   
## 3 3         13    61    8     69    67    70    50    44    64    46    34   
## 4 4         57    71    60    69    43    54    33    44    40    28    12   
## 5 5         50    61    52    73    47    39    21    48    24    0     23   
## 6 6         57    61    60    65    30    31    42    35    40    73    23   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 24] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 700                 : chr [1:27] "0" "40" "13" "57" ...
##  $ 701                 : chr [1:27] "57" "61" "61" "71" ...
##  $ 702                 : chr [1:27] "4" "36" "8" "60" ...
##  $ 703                 : chr [1:27] "65" "62" "69" "69" ...
##  $ 704                 : chr [1:27] "23" "60" "67" "43" ...
##  $ 705                 : chr [1:27] "20" "35" "70" "54" ...
##  $ 706                 : chr [1:27] "25" "33" "50" "33" ...
##  $ 707                 : chr [1:27] "26" "30" "44" "44" ...
##  $ 708                 : chr [1:27] "12" "40" "64" "40" ...
##  $ 709                 : chr [1:27] "46" "37" "46" "28" ...
##  $ 710                 : chr [1:27] "34" "12" "34" "12" ...
##  $ 711                 : chr [1:27] "30" "44" "52" "37" ...
##  $ 712                 : chr [1:27] "10" "38" "59" "52" ...
##  $ 713                 : chr [1:27] "26" "44" "52" "44" ...
##  $ 714                 : chr [1:27] "25" "64" "61" "61" ...
##  $ 715                 : chr [1:27] "3" "43" "20" "57" ...
##  $ 716                 : chr [1:27] "4" "68" "16" "64" ...
##  $ 717                 : chr [1:27] "28" "62" "59" "59" ...
##  $ 718                 : chr [1:27] "32" "25" "54" "43" ...
##  $ 719                 : chr [1:27] "68" "75" "75" "82" ...
##  $ 720                 : chr [1:27] NA NA NA NA ...
##  $ 721                 : chr [1:27] "54" "75" "47" "68" ...
##  $ Per_Question_Average: chr [1:27] "28.1904761904762" "46.8571428571429" "48.6190476190476" "51.3333333333333" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             700                701                702           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      703                704                705                706           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      707                708                709                710           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      711                712                713                714           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      715                716                717                718           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      719                720                721            Per_Question_Average
##  Length:27          Length:27          Length:27          Length:27           
##  Class :character   Class :character   Class :character   Class :character    
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion

## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###
## 
## 
## ### Exploring Benchmark 6 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         18    70    37    65    25    29    29    18.5  36    23    50   
## 2 2         39    68    37    79    50    42    33    44.4  27    45    38   
## 3 3         89    84    93    68    79    63    48    48.1  73    45    50   
## 4 4         57    90    41    72    61    54    38    48.1  55    67    50   
## 5 5         68    78    44    86    57    33    29    37    27    34    25   
## 6 6         57    70    85    82    46    33    24    22.2  36    78    13   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 24] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 700                 : chr [1:27] "18" "39" "89" "57" ...
##  $ 701                 : chr [1:27] "70" "68" "84" "90" ...
##  $ 702                 : chr [1:27] "37" "37" "93" "41" ...
##  $ 703                 : chr [1:27] "65" "79" "68" "72" ...
##  $ 704                 : chr [1:27] "25" "50" "79" "61" ...
##  $ 705                 : chr [1:27] "29" "42" "63" "54" ...
##  $ 706                 : chr [1:27] "29" "33" "48" "38" ...
##  $ 707                 : chr [1:27] "18.5" "44.4" "48.1" "48.1" ...
##  $ 708                 : chr [1:27] "36" "27" "73" "55" ...
##  $ 709                 : chr [1:27] "23" "45" "45" "67" ...
##  $ 710                 : chr [1:27] "50" "38" "50" "50" ...
##  $ 711                 : chr [1:27] "27.6" "31" "65.5" "48.3" ...
##  $ 712                 : chr [1:27] "15.4" "50" "76.90000000000001" "76.90000000000001" ...
##  $ 713                 : chr [1:27] "31" "34.5" "58.6" "34.5" ...
##  $ 714                 : chr [1:27] "44.8" "51.7" "69" "58.6" ...
##  $ 715                 : chr [1:27] "46" "55" "91" "34" ...
##  $ 716                 : chr [1:27] "48" "26" "65" "48" ...
##  $ 717                 : chr [1:27] "28" "21" "48" "28" ...
##  $ 718                 : chr [1:27] "67" "54" "54" "71" ...
##  $ 719                 : chr [1:27] "57" "57" "82" "72" ...
##  $ 720                 : chr [1:27] "32" "37" "53" "47" ...
##  $ 721                 : chr [1:27] "92" "97" "92" "100" ...
##  $ Per_Question_Average: chr [1:27] "40.4227272727273" "46.2090909090909" "67.9590909090909" "56.8818181818182" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             700                701                702           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      703                704                705                706           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      707                708                709                710           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      711                712                713                714           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      715                716                717                718           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      719                720                721            Per_Question_Average
##  Length:27          Length:27          Length:27          Length:27           
##  Class :character   Class :character   Class :character   Class :character    
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion

## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###
## 
## 
## ### Exploring Benchmark 7 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803`    `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr>    <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         90    69    86    20.7     28.6  38.5  49    44    22.2  43    31   
## 2 2         80    79    83    79.3     60.7  57.7  61    56    63    100   77   
## 3 3         72    83    76    69.5     46.4  30.8  46    41    33    15    16   
## 4 4         83    79    90    75.9000… 53.6  46.2  68    63    51.9  43    31   
## 5 5         76    76    69    65.5     35.7  53.8  60    56    63    15    54   
## 6 6         48    33    28    65.5     8     24    43    39    59.3  50    46   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 21] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 800                 : chr [1:27] "90" "80" "72" "83" ...
##  $ 801                 : chr [1:27] "69" "79" "83" "79" ...
##  $ 802                 : chr [1:27] "86" "83" "76" "90" ...
##  $ 803                 : chr [1:27] "20.7" "79.3" "69.5" "75.90000000000001" ...
##  $ 804                 : chr [1:27] "28.6" "60.7" "46.4" "53.6" ...
##  $ 805                 : chr [1:27] "38.5" "57.7" "30.8" "46.2" ...
##  $ 806                 : chr [1:27] "49" "61" "46" "68" ...
##  $ 807                 : chr [1:27] "44" "56" "41" "63" ...
##  $ 808                 : chr [1:27] "22.2" "63" "33" "51.9" ...
##  $ 809                 : chr [1:27] "43" "100" "15" "43" ...
##  $ 810                 : chr [1:27] "31" "77" "16" "31" ...
##  $ 811                 : chr [1:27] "39" "49" "36" "58" ...
##  $ 812                 : chr [1:27] "36" "57" "43" "64" ...
##  $ 813                 : chr [1:27] "32" "39" "32" "21" ...
##  $ 814                 : chr [1:27] "53" "70" "63" "63" ...
##  $ 815                 : chr [1:27] "39" "53" "39" "67" ...
##  $ 816                 : chr [1:27] "81" "85" "77" "85" ...
##  $ 817                 : chr [1:27] "22" "70" "61" "48" ...
##  $ 818                 : chr [1:27] "43" "73" "50" "46" ...
##  $ Per_Question_Average: chr [1:27] "45.6315789473684" "68.0368421052632" "48.9315789473684" "59.8210526315789" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             800                801                802           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      803                804                805                806           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      807                808                809                810           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      811                812                813                814           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      815                816                817                818           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##  Per_Question_Average
##  Length:27           
##  Class :character    
##  Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion

## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###
## 
## 
## ### Exploring Benchmark 8 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         87    92    86    48    40    63    64    70    85    29    17   
## 2 2         90    96    83    80    74    70    77    78    92    43    25   
## 3 3         77    71    90    61    70    59    77    57    88    43    34   
## 4 4         97    83    97    77    59    74    82    57    85    29    25   
## 5 5         73    71    93    74    66    74    64    61    81    43    34   
## 6 6         43    33    45    35    22    61    64    43    70    29    25   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 21] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 800                 : chr [1:27] "87" "90" "77" "97" ...
##  $ 801                 : chr [1:27] "92" "96" "71" "83" ...
##  $ 802                 : chr [1:27] "86" "83" "90" "97" ...
##  $ 803                 : chr [1:27] "48" "80" "61" "77" ...
##  $ 804                 : chr [1:27] "40" "74" "70" "59" ...
##  $ 805                 : chr [1:27] "63" "70" "59" "74" ...
##  $ 806                 : chr [1:27] "64" "77" "77" "82" ...
##  $ 807                 : chr [1:27] "70" "78" "57" "57" ...
##  $ 808                 : chr [1:27] "85" "92" "88" "85" ...
##  $ 809                 : chr [1:27] "29" "43" "43" "29" ...
##  $ 810                 : chr [1:27] "17" "25" "34" "25" ...
##  $ 811                 : chr [1:27] "52" "61" "57" "35" ...
##  $ 812                 : chr [1:27] "33" "70" "27" "53" ...
##  $ 813                 : chr [1:27] "86" "83" "79" "90" ...
##  $ 814                 : chr [1:27] "69" "76" "62" "72" ...
##  $ 815                 : chr [1:27] "72" "92" "68" "92" ...
##  $ 816                 : chr [1:27] "80" "73" "77" "80" ...
##  $ 817                 : chr [1:27] "38" "76" "55" "79" ...
##  $ 818                 : chr [1:27] "75" "79" "79" "87" ...
##  $ Per_Question_Average: chr [1:27] "62.4210526315789" "74.6315789473684" "64.78947368421051" "71.21052631578949" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             800                801                802           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      803                804                805                806           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      807                808                809                810           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      811                812                813                814           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      815                816                817                818           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##  Per_Question_Average
##  Length:27           
##  Class :character    
##  Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion

## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###
## 
## 
## ### Exploring Benchmark 9 ###
## ### First Few Rows of the Data ###
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         <NA>  <NA>  <NA>  <NA>  62    28    <NA>  <NA>  61    17    50   
## 2 2         <NA>  <NA>  <NA>  <NA>  86    84    <NA>  <NA>  79    34    34   
## 3 3         <NA>  <NA>  <NA>  <NA>  93    88    <NA>  <NA>  75    50    42   
## 4 4         <NA>  <NA>  <NA>  <NA>  79    56    <NA>  <NA>  61    0     50   
## 5 5         <NA>  <NA>  <NA>  <NA>  90    92    <NA>  <NA>  93    0     50   
## 6 6         <NA>  <NA>  <NA>  <NA>  83    84    <NA>  <NA>  79    67    25   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <chr>
## 
## ### Structure of the Data ###
## tibble [27 × 21] (S3: tbl_df/tbl/data.frame)
##  $ Questions           : chr [1:27] "1" "2" "3" "4" ...
##  $ 800                 : chr [1:27] NA NA NA NA ...
##  $ 801                 : chr [1:27] NA NA NA NA ...
##  $ 802                 : chr [1:27] NA NA NA NA ...
##  $ 803                 : chr [1:27] NA NA NA NA ...
##  $ 804                 : chr [1:27] "62" "86" "93" "79" ...
##  $ 805                 : chr [1:27] "28" "84" "88" "56" ...
##  $ 806                 : chr [1:27] NA NA NA NA ...
##  $ 807                 : chr [1:27] NA NA NA NA ...
##  $ 808                 : chr [1:27] "61" "79" "75" "61" ...
##  $ 809                 : chr [1:27] "17" "34" "50" "0" ...
##  $ 810                 : chr [1:27] "50" "34" "42" "50" ...
##  $ 811                 : chr [1:27] NA NA NA NA ...
##  $ 812                 : chr [1:27] NA NA NA NA ...
##  $ 813                 : chr [1:27] "90" "87" "80" "90" ...
##  $ 814                 : chr [1:27] NA NA NA NA ...
##  $ 815                 : chr [1:27] NA NA NA NA ...
##  $ 816                 : chr [1:27] NA NA NA NA ...
##  $ 817                 : chr [1:27] NA NA NA NA ...
##  $ 818                 : chr [1:27] "85" "80" "80" "90" ...
##  $ Per_Question_Average: chr [1:27] "56.1428571428571" "69.1428571428571" "72.5714285714286" "60.8571428571429" ...
## NULL
## 
## ### Summary Statistics of the Data ###
##   Questions             800                801                802           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      803                804                805                806           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      807                808                809                810           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      811                812                813                814           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      815                816                817                818           
##  Length:27          Length:27          Length:27          Length:27         
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##  Per_Question_Average
##  Length:27           
##  Class :character    
##  Mode  :character
## Warning in explore_data(benchmarks_list[[i]]): NAs introduced by coercion

## 
## ### Histogram of Per_Question_Average ###
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_bin()`).

## 
## ### Bar Plot of Per_Question_Average by Question ###

  • The histogram (blue graphs) helps to see the overall spread of average scores across all questions by showing how frequently each score range appears. This the question that is answered by the histogram: How often do different average scores appear?

  • The bar plot (green plots) provides a direct comparison of individual question scores, helping identify which questions scored higher or lower on average. This is the question that is answered by the bar plot: What is the average score for each question?

3. Data Cleaning and Preparation

3.1 Preparing the data:

In this step, we inspected the dataset to confirm the presence of the necessary columns. The dataset (8th grade as an example) contains the following columns:

## [1] "Columns before selection: Questions, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, Per_Question_Average"

By reviewing this structure, we ensure that all the necessary columns are available for further analysis, which includes comparing performance across different benchmarks and identifying trends in student performance for each question using the Per_Question_Average.

Next, a check has been performed for non-numeric entries in the benchmark data frames, and we’ve found some entries that are not suitable for the analysis.

## $`6th Grade Benchmark 1`
## $`6th Grade Benchmark 1`$Questions
## [1] "Class Average"
## 
## $`6th Grade Benchmark 1`$`600`
## character(0)
## 
## $`6th Grade Benchmark 1`$`601`
## character(0)
## 
## $`6th Grade Benchmark 1`$`602`
## character(0)
## 
## $`6th Grade Benchmark 1`$`603`
## character(0)
## 
## $`6th Grade Benchmark 1`$`604`
## character(0)
## 
## $`6th Grade Benchmark 1`$`605`
## character(0)
## 
## $`6th Grade Benchmark 1`$`606`
## character(0)
## 
## $`6th Grade Benchmark 1`$`607`
## character(0)
## 
## $`6th Grade Benchmark 1`$`608`
## character(0)
## 
## $`6th Grade Benchmark 1`$`609`
## character(0)
## 
## $`6th Grade Benchmark 1`$`610`
## character(0)
## 
## $`6th Grade Benchmark 1`$`611`
## character(0)
## 
## $`6th Grade Benchmark 1`$`612`
## character(0)
## 
## $`6th Grade Benchmark 1`$`613`
## character(0)
## 
## $`6th Grade Benchmark 1`$`614`
## character(0)
## 
## $`6th Grade Benchmark 1`$`615`
## character(0)
## 
## $`6th Grade Benchmark 1`$`616`
## character(0)
## 
## $`6th Grade Benchmark 1`$`617`
## character(0)
## 
## $`6th Grade Benchmark 1`$`618`
## character(0)
## 
## $`6th Grade Benchmark 1`$`619`
## character(0)
## 
## $`6th Grade Benchmark 1`$`620`
## character(0)
## 
## $`6th Grade Benchmark 1`$`621`
## [1] "Class has 6 students"
## 
## $`6th Grade Benchmark 1`$`673`
## character(0)
## 
## $`6th Grade Benchmark 1`$Per_Question_Average
## [1] "Grade Average"
## 
## $`6th Grade Benchmark 1`$Skills
##  [1] "Question and Problem"                                            
##  [2] "Analyze and Interpret Data/ Cause and Effect"                    
##  [3] "Construct an Explanations and Design Solutions/ Cause and Effect"
##  [4] "Plan and Carry Out Investigations"                               
##  [5] "Analyze and Interpret Data"                                      
##  [6] "Developing and Using Models/ System and System Models"           
##  [7] "Developing and Using Models"                                     
##  [8] "Construct an Explanations and Design Solutions"                  
##  [9] "Developing and Using Models/ Patterns"                           
## [10] "Developing and Using Models/ Cause and Effect"                   
## 
## 
## $`6th Grade Benchmark 2`
## $`6th Grade Benchmark 2`$Questions
## [1] "Class Average"
## 
## $`6th Grade Benchmark 2`$`600`
## character(0)
## 
## $`6th Grade Benchmark 2`$`601`
## character(0)
## 
## $`6th Grade Benchmark 2`$`602`
## character(0)
## 
## $`6th Grade Benchmark 2`$`603`
## character(0)
## 
## $`6th Grade Benchmark 2`$`604`
## character(0)
## 
## $`6th Grade Benchmark 2`$`605`
## character(0)
## 
## $`6th Grade Benchmark 2`$`606`
## character(0)
## 
## $`6th Grade Benchmark 2`$`607`
## character(0)
## 
## $`6th Grade Benchmark 2`$`608`
## character(0)
## 
## $`6th Grade Benchmark 2`$`609`
## character(0)
## 
## $`6th Grade Benchmark 2`$`610`
## character(0)
## 
## $`6th Grade Benchmark 2`$`611`
## character(0)
## 
## $`6th Grade Benchmark 2`$`612`
## character(0)
## 
## $`6th Grade Benchmark 2`$`613`
## character(0)
## 
## $`6th Grade Benchmark 2`$`614`
## character(0)
## 
## $`6th Grade Benchmark 2`$`615`
## character(0)
## 
## $`6th Grade Benchmark 2`$`616`
## character(0)
## 
## $`6th Grade Benchmark 2`$`617`
## character(0)
## 
## $`6th Grade Benchmark 2`$`618`
## character(0)
## 
## $`6th Grade Benchmark 2`$`619`
## character(0)
## 
## $`6th Grade Benchmark 2`$`620`
## character(0)
## 
## $`6th Grade Benchmark 2`$`621`
## character(0)
## 
## $`6th Grade Benchmark 2`$`673`
## character(0)
## 
## $`6th Grade Benchmark 2`$Per_Question_Average
## [1] "Grade Average"
## 
## $`6th Grade Benchmark 2`$Skills
##  [1] "Question and Problem"                                            
##  [2] "Analyze and Interpret Data/ Cause and Effect"                    
##  [3] "Construct an Explanations and Design Solutions/ Cause and Effect"
##  [4] "Plan and Carry Out Investigations"                               
##  [5] "Analyze and Interpret Data"                                      
##  [6] "Developing and Using Models/ System and System Models"           
##  [7] "Developing and Using Models"                                     
##  [8] "Construct an Explanations and Design Solutions"                  
##  [9] "Developing and Using Models/ Patterns"                           
## [10] "Developing and Using Models/ Cause and Effect"                   
## 
## 
## $` 6th Grade Benchmark 3`
## $` 6th Grade Benchmark 3`$Questions
## [1] "Class Average"
## 
## $` 6th Grade Benchmark 3`$`600`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`601`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`602`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`603`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`604`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`605`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`606`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`607`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`608`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`609`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`610`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`611`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`612`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`613`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`614`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`615`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`616`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`617`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`618`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`619`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`620`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`621`
## character(0)
## 
## $` 6th Grade Benchmark 3`$`673`
## character(0)
## 
## $` 6th Grade Benchmark 3`$Per_Question_Average
## [1] "Grade Average"
## 
## $` 6th Grade Benchmark 3`$Skills
##  [1] "Question and Problem"                                            
##  [2] "Analyze and Interpret Data/ Cause and Effect"                    
##  [3] "Construct an Explanations and Design Solutions/ Cause and Effect"
##  [4] "Plan and Carry Out Investigations"                               
##  [5] "Analyze and Interpret Data"                                      
##  [6] "Developing and Using Models/ System and System Models"           
##  [7] "Developing and Using Models"                                     
##  [8] "Construct an Explanations and Design Solutions"                  
##  [9] "Developing and Using Models/ Patterns"                           
## [10] "Developing and Using Models/ Cause and Effect"                   
## 
## 
## $`7th Grade Benchmark 1`
## $`7th Grade Benchmark 1`$Questions
## [1] "Class Average"
## 
## $`7th Grade Benchmark 1`$`700`
## character(0)
## 
## $`7th Grade Benchmark 1`$`701`
## character(0)
## 
## $`7th Grade Benchmark 1`$`702`
## character(0)
## 
## $`7th Grade Benchmark 1`$`703`
## character(0)
## 
## $`7th Grade Benchmark 1`$`704`
## character(0)
## 
## $`7th Grade Benchmark 1`$`705`
## character(0)
## 
## $`7th Grade Benchmark 1`$`706`
## character(0)
## 
## $`7th Grade Benchmark 1`$`707`
## character(0)
## 
## $`7th Grade Benchmark 1`$`708`
## character(0)
## 
## $`7th Grade Benchmark 1`$`709`
## character(0)
## 
## $`7th Grade Benchmark 1`$`710`
## character(0)
## 
## $`7th Grade Benchmark 1`$`711`
## character(0)
## 
## $`7th Grade Benchmark 1`$`712`
## character(0)
## 
## $`7th Grade Benchmark 1`$`713`
## character(0)
## 
## $`7th Grade Benchmark 1`$`714`
## character(0)
## 
## $`7th Grade Benchmark 1`$`715`
## character(0)
## 
## $`7th Grade Benchmark 1`$`716`
## character(0)
## 
## $`7th Grade Benchmark 1`$`717`
## character(0)
## 
## $`7th Grade Benchmark 1`$`718`
## character(0)
## 
## $`7th Grade Benchmark 1`$`719`
## character(0)
## 
## $`7th Grade Benchmark 1`$`720`
## character(0)
## 
## $`7th Grade Benchmark 1`$`721`
## character(0)
## 
## $`7th Grade Benchmark 1`$Per_Question_Average
## [1] "Grade Average"
## 
## 
## $`7th Grade Benchmark 2`
## $`7th Grade Benchmark 2`$Questions
## [1] "Class Average"
## 
## $`7th Grade Benchmark 2`$`700`
## character(0)
## 
## $`7th Grade Benchmark 2`$`701`
## character(0)
## 
## $`7th Grade Benchmark 2`$`702`
## character(0)
## 
## $`7th Grade Benchmark 2`$`703`
## character(0)
## 
## $`7th Grade Benchmark 2`$`704`
## character(0)
## 
## $`7th Grade Benchmark 2`$`705`
## character(0)
## 
## $`7th Grade Benchmark 2`$`706`
## character(0)
## 
## $`7th Grade Benchmark 2`$`707`
## character(0)
## 
## $`7th Grade Benchmark 2`$`708`
## character(0)
## 
## $`7th Grade Benchmark 2`$`709`
## character(0)
## 
## $`7th Grade Benchmark 2`$`710`
## character(0)
## 
## $`7th Grade Benchmark 2`$`711`
## character(0)
## 
## $`7th Grade Benchmark 2`$`712`
## character(0)
## 
## $`7th Grade Benchmark 2`$`713`
## character(0)
## 
## $`7th Grade Benchmark 2`$`714`
## character(0)
## 
## $`7th Grade Benchmark 2`$`715`
## character(0)
## 
## $`7th Grade Benchmark 2`$`716`
## character(0)
## 
## $`7th Grade Benchmark 2`$`717`
## character(0)
## 
## $`7th Grade Benchmark 2`$`718`
## character(0)
## 
## $`7th Grade Benchmark 2`$`719`
## character(0)
## 
## $`7th Grade Benchmark 2`$`720`
## character(0)
## 
## $`7th Grade Benchmark 2`$`721`
## character(0)
## 
## $`7th Grade Benchmark 2`$Per_Question_Average
## [1] "Grade Average"
## 
## 
## $`7th Grade Benchmark 3`
## $`7th Grade Benchmark 3`$Questions
## [1] "Class Average"
## 
## $`7th Grade Benchmark 3`$`700`
## character(0)
## 
## $`7th Grade Benchmark 3`$`701`
## character(0)
## 
## $`7th Grade Benchmark 3`$`702`
## character(0)
## 
## $`7th Grade Benchmark 3`$`703`
## character(0)
## 
## $`7th Grade Benchmark 3`$`704`
## character(0)
## 
## $`7th Grade Benchmark 3`$`705`
## character(0)
## 
## $`7th Grade Benchmark 3`$`706`
## character(0)
## 
## $`7th Grade Benchmark 3`$`707`
## character(0)
## 
## $`7th Grade Benchmark 3`$`708`
## character(0)
## 
## $`7th Grade Benchmark 3`$`709`
## character(0)
## 
## $`7th Grade Benchmark 3`$`710`
## character(0)
## 
## $`7th Grade Benchmark 3`$`711`
## character(0)
## 
## $`7th Grade Benchmark 3`$`712`
## character(0)
## 
## $`7th Grade Benchmark 3`$`713`
## character(0)
## 
## $`7th Grade Benchmark 3`$`714`
## character(0)
## 
## $`7th Grade Benchmark 3`$`715`
## character(0)
## 
## $`7th Grade Benchmark 3`$`716`
## character(0)
## 
## $`7th Grade Benchmark 3`$`717`
## character(0)
## 
## $`7th Grade Benchmark 3`$`718`
## character(0)
## 
## $`7th Grade Benchmark 3`$`719`
## character(0)
## 
## $`7th Grade Benchmark 3`$`720`
## character(0)
## 
## $`7th Grade Benchmark 3`$`721`
## character(0)
## 
## $`7th Grade Benchmark 3`$Per_Question_Average
## [1] "Grade Average"
## 
## 
## $`8th Grade Benchmark 1`
## $`8th Grade Benchmark 1`$Questions
## [1] "Class Average"
## 
## $`8th Grade Benchmark 1`$`800`
## character(0)
## 
## $`8th Grade Benchmark 1`$`801`
## character(0)
## 
## $`8th Grade Benchmark 1`$`802`
## character(0)
## 
## $`8th Grade Benchmark 1`$`803`
## character(0)
## 
## $`8th Grade Benchmark 1`$`804`
## character(0)
## 
## $`8th Grade Benchmark 1`$`805`
## character(0)
## 
## $`8th Grade Benchmark 1`$`806`
## character(0)
## 
## $`8th Grade Benchmark 1`$`807`
## character(0)
## 
## $`8th Grade Benchmark 1`$`808`
## character(0)
## 
## $`8th Grade Benchmark 1`$`809`
## character(0)
## 
## $`8th Grade Benchmark 1`$`810`
## character(0)
## 
## $`8th Grade Benchmark 1`$`811`
## character(0)
## 
## $`8th Grade Benchmark 1`$`812`
## character(0)
## 
## $`8th Grade Benchmark 1`$`813`
## character(0)
## 
## $`8th Grade Benchmark 1`$`814`
## character(0)
## 
## $`8th Grade Benchmark 1`$`815`
## character(0)
## 
## $`8th Grade Benchmark 1`$`816`
## character(0)
## 
## $`8th Grade Benchmark 1`$`817`
## character(0)
## 
## $`8th Grade Benchmark 1`$`818`
## character(0)
## 
## $`8th Grade Benchmark 1`$Per_Question_Average
## [1] "Grade Average"
## 
## 
## $`8th Grade Benchmark 2`
## $`8th Grade Benchmark 2`$Questions
## [1] "Class Average"
## 
## $`8th Grade Benchmark 2`$`800`
## character(0)
## 
## $`8th Grade Benchmark 2`$`801`
## character(0)
## 
## $`8th Grade Benchmark 2`$`802`
## character(0)
## 
## $`8th Grade Benchmark 2`$`803`
## character(0)
## 
## $`8th Grade Benchmark 2`$`804`
## character(0)
## 
## $`8th Grade Benchmark 2`$`805`
## character(0)
## 
## $`8th Grade Benchmark 2`$`806`
## character(0)
## 
## $`8th Grade Benchmark 2`$`807`
## character(0)
## 
## $`8th Grade Benchmark 2`$`808`
## character(0)
## 
## $`8th Grade Benchmark 2`$`809`
## character(0)
## 
## $`8th Grade Benchmark 2`$`810`
## character(0)
## 
## $`8th Grade Benchmark 2`$`811`
## character(0)
## 
## $`8th Grade Benchmark 2`$`812`
## character(0)
## 
## $`8th Grade Benchmark 2`$`813`
## character(0)
## 
## $`8th Grade Benchmark 2`$`814`
## character(0)
## 
## $`8th Grade Benchmark 2`$`815`
## character(0)
## 
## $`8th Grade Benchmark 2`$`816`
## character(0)
## 
## $`8th Grade Benchmark 2`$`817`
## character(0)
## 
## $`8th Grade Benchmark 2`$`818`
## character(0)
## 
## $`8th Grade Benchmark 2`$Per_Question_Average
## [1] "Grade Average"
## 
## 
## $`8th Grade Benchmark 3`
## $`8th Grade Benchmark 3`$Questions
## [1] "Class Average"
## 
## $`8th Grade Benchmark 3`$`800`
## character(0)
## 
## $`8th Grade Benchmark 3`$`801`
## character(0)
## 
## $`8th Grade Benchmark 3`$`802`
## character(0)
## 
## $`8th Grade Benchmark 3`$`803`
## character(0)
## 
## $`8th Grade Benchmark 3`$`804`
## character(0)
## 
## $`8th Grade Benchmark 3`$`805`
## character(0)
## 
## $`8th Grade Benchmark 3`$`806`
## character(0)
## 
## $`8th Grade Benchmark 3`$`807`
## character(0)
## 
## $`8th Grade Benchmark 3`$`808`
## character(0)
## 
## $`8th Grade Benchmark 3`$`809`
## character(0)
## 
## $`8th Grade Benchmark 3`$`810`
## character(0)
## 
## $`8th Grade Benchmark 3`$`811`
## character(0)
## 
## $`8th Grade Benchmark 3`$`812`
## character(0)
## 
## $`8th Grade Benchmark 3`$`813`
## character(0)
## 
## $`8th Grade Benchmark 3`$`814`
## character(0)
## 
## $`8th Grade Benchmark 3`$`815`
## character(0)
## 
## $`8th Grade Benchmark 3`$`816`
## character(0)
## 
## $`8th Grade Benchmark 3`$`817`
## character(0)
## 
## $`8th Grade Benchmark 3`$`818`
## character(0)
## 
## $`8th Grade Benchmark 3`$Per_Question_Average
## [1] "Grade Average"

Findings

  • Common Issues Across All Benchmarks:

    • Questions Column: Contains “Class Average” (for each benchmark).

    • Per_Question_Average Column: Contains “Grade Average” (for each benchmark).

    • Specific Class Columns: Some columns (like 621 in 6th Grade Benchmark 1) contain entries like “Class has 6 students.”

  • Skills Column: Contains non-numeric values that describe the skills associated with the questions.

To clean up these non-numeric entries, I am going to Convert Per_Question_Average to Numeric in Each Data Frame. This will ensure that the Per_Question_Average column in each benchmark data frame is numeric before combining them.

##  [1] 73.93913 46.17391 30.44783 37.61739 42.02609 55.57826 50.39565 62.45652
##  [9] 14.89130 34.93913 28.37391 41.15217 22.58261 57.05217 39.50870 44.30870
## [17] 28.04348 56.92174 69.60435 29.94348 33.90435 48.28261 23.42609 22.06957
## [25] 67.20000 42.91545       NA

3.2 Cleaning the Data:

This step aims to clean up the dataset by handling missing values, converting columns to numeric types, and ensuring consistency across different benchmark tabs.

## Before cleaning: 6th Grade Benchmark 1 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         86    82    88    88    96    57    57    61    73    56    57   
## 2 2         70    60    68    69    52    38    17    44    41    40    25   
## 3 3         30    39    44    46    40    14    30    26    36    43    35   
## 4 4         56    46    48    65    60    19    26    22    55    18    19   
## 5 5         56    67    44    57    60    43    48    44    36    25    30   
## 6 6         80    78    80    76    60    29    48    48    32    37    30   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <dbl>,
## #   Skills <chr>
## After replacing '???': 6th Grade Benchmark 1 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         86    82    88    88    96    57    57    61    73    56    57   
## 2 2         70    60    68    69    52    38    17    44    41    40    25   
## 3 3         30    39    44    46    40    14    30    26    36    43    35   
## 4 4         56    46    48    65    60    19    26    22    55    18    19   
## 5 5         56    67    44    57    60    43    48    44    36    25    30   
## 6 6         80    78    80    76    60    29    48    48    32    37    30   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <dbl>,
## #   Skills <chr>
## After conversion: 6th Grade Benchmark 1 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1    86    82    88    88    96    57    57    61    73    56    57
## 2         2    70    60    68    69    52    38    17    44    41    40    25
## 3         3    30    39    44    46    40    14    30    26    36    43    35
## 4         4    56    46    48    65    60    19    26    22    55    18    19
## 5         5    56    67    44    57    60    43    48    44    36    25    30
## 6         6    80    78    80    76    60    29    48    48    32    37    30
## # ℹ 14 more variables: `611` <dbl>, `612` <dbl>, `613` <dbl>, `614` <dbl>,
## #   `615` <dbl>, `616` <dbl>, `617` <dbl>, `618` <dbl>, `619` <dbl>,
## #   `620` <dbl>, `621` <dbl>, `673` <dbl>, Per_Question_Average <dbl>,
## #   Skills <chr>
## Before cleaning: 6th Grade Benchmark 2 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         97    80    82    100   89    53    83    74    84    57    56   
## 2 2         56    69    67    74    63    58    31    41    64    35    30   
## 3 3         52    38    45    70    56    11    13    41    32    40    40   
## 4 4         52    42    49    62    48    32    35    37    32    32    30   
## 5 5         66    76    49    74    59    48    22    19    56    25    30   
## 6 6         59    63    67    93    71    48    52    52    60    37    35   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <dbl>,
## #   Skills <chr>
## After replacing '???': 6th Grade Benchmark 2 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         97    80    82    100   89    53    83    74    84    57    56   
## 2 2         56    69    67    74    63    58    31    41    64    35    30   
## 3 3         52    38    45    70    56    11    13    41    32    40    40   
## 4 4         52    42    49    62    48    32    35    37    32    32    30   
## 5 5         66    76    49    74    59    48    22    19    56    25    30   
## 6 6         59    63    67    93    71    48    52    52    60    37    35   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <dbl>,
## #   Skills <chr>
## After conversion: 6th Grade Benchmark 2 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1    97    80    82   100    89    53    83    74    84    57    56
## 2         2    56    69    67    74    63    58    31    41    64    35    30
## 3         3    52    38    45    70    56    11    13    41    32    40    40
## 4         4    52    42    49    62    48    32    35    37    32    32    30
## 5         5    66    76    49    74    59    48    22    19    56    25    30
## 6         6    59    63    67    93    71    48    52    52    60    37    35
## # ℹ 14 more variables: `611` <dbl>, `612` <dbl>, `613` <dbl>, `614` <dbl>,
## #   `615` <dbl>, `616` <dbl>, `617` <dbl>, `618` <dbl>, `619` <dbl>,
## #   `620` <dbl>, `621` <dbl>, `673` <dbl>, Per_Question_Average <dbl>,
## #   Skills <chr>
## Before cleaning:  6th Grade Benchmark 3 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         100   97    100   97    97    63    81    76    96    50    45   
## 2 2         76    86    73    70    78    60    47    64    55    20    25   
## 3 3         45    79    66    70    49    30    31    60    59    35    30   
## 4 4         69    54    52    74    63    41    50    48    63    41    45   
## 5 5         80    79    69    70    67    49    39    28    55    30    30   
## 6 6         90    93    83    90    86    67    70    68    67    25    20   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <dbl>,
## #   Skills <chr>
## After replacing '???':  6th Grade Benchmark 3 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         100   97    100   97    97    63    81    76    96    50    45   
## 2 2         76    86    73    70    78    60    47    64    55    20    25   
## 3 3         45    79    66    70    49    30    31    60    59    35    30   
## 4 4         69    54    52    74    63    41    50    48    63    41    45   
## 5 5         80    79    69    70    67    49    39    28    55    30    30   
## 6 6         90    93    83    90    86    67    70    68    67    25    20   
## # ℹ 14 more variables: `611` <chr>, `612` <chr>, `613` <chr>, `614` <chr>,
## #   `615` <chr>, `616` <chr>, `617` <chr>, `618` <chr>, `619` <chr>,
## #   `620` <chr>, `621` <chr>, `673` <chr>, Per_Question_Average <dbl>,
## #   Skills <chr>
## After conversion:  6th Grade Benchmark 3 
## # A tibble: 6 × 26
##   Questions `600` `601` `602` `603` `604` `605` `606` `607` `608` `609` `610`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1   100    97   100    97    97    63    81    76    96    50    45
## 2         2    76    86    73    70    78    60    47    64    55    20    25
## 3         3    45    79    66    70    49    30    31    60    59    35    30
## 4         4    69    54    52    74    63    41    50    48    63    41    45
## 5         5    80    79    69    70    67    49    39    28    55    30    30
## 6         6    90    93    83    90    86    67    70    68    67    25    20
## # ℹ 14 more variables: `611` <dbl>, `612` <dbl>, `613` <dbl>, `614` <dbl>,
## #   `615` <dbl>, `616` <dbl>, `617` <dbl>, `618` <dbl>, `619` <dbl>,
## #   `620` <dbl>, `621` <dbl>, `673` <dbl>, Per_Question_Average <dbl>,
## #   Skills <chr>
## Before cleaning: 7th Grade Benchmark 1 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         3     3     0     12    30    18    21    23.8  11    9     15   
## 2 2         52    27    31    42    57    36    46    42.9  29    46    29   
## 3 3         28    57    19    50    47    36    33    47.6  54    28    43   
## 4 4         62    50    54    54    37    50    46    14.3  39    37    0    
## 5 5         59    53    42    50    23    46    58    28.6  39    37    15   
## 6 6         45    40    42    27    40    27    25    23.8  54    27    15   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <dbl>
## After replacing '???': 7th Grade Benchmark 1 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         3     3     0     12    30    18    21    23.8  11    9     15   
## 2 2         52    27    31    42    57    36    46    42.9  29    46    29   
## 3 3         28    57    19    50    47    36    33    47.6  54    28    43   
## 4 4         62    50    54    54    37    50    46    14.3  39    37    0    
## 5 5         59    53    42    50    23    46    58    28.6  39    37    15   
## 6 6         45    40    42    27    40    27    25    23.8  54    27    15   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <dbl>
## After conversion: 7th Grade Benchmark 1 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1     3     3     0    12    30    18    21  23.8    11     9    15
## 2         2    52    27    31    42    57    36    46  42.9    29    46    29
## 3         3    28    57    19    50    47    36    33  47.6    54    28    43
## 4         4    62    50    54    54    37    50    46  14.3    39    37     0
## 5         5    59    53    42    50    23    46    58  28.6    39    37    15
## 6         6    45    40    42    27    40    27    25  23.8    54    27    15
## # ℹ 12 more variables: `711` <dbl>, `712` <dbl>, `713` <dbl>, `714` <dbl>,
## #   `715` <dbl>, `716` <dbl>, `717` <dbl>, `718` <dbl>, `719` <dbl>,
## #   `720` <dbl>, `721` <dbl>, Per_Question_Average <dbl>
## Before cleaning: 7th Grade Benchmark 2 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         0     57    4     65    23    20    25    26    12    46    34   
## 2 2         40    61    36    62    60    35    33    30    40    37    12   
## 3 3         13    61    8     69    67    70    50    44    64    46    34   
## 4 4         57    71    60    69    43    54    33    44    40    28    12   
## 5 5         50    61    52    73    47    39    21    48    24    0     23   
## 6 6         57    61    60    65    30    31    42    35    40    73    23   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <dbl>
## After replacing '???': 7th Grade Benchmark 2 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         0     57    4     65    23    20    25    26    12    46    34   
## 2 2         40    61    36    62    60    35    33    30    40    37    12   
## 3 3         13    61    8     69    67    70    50    44    64    46    34   
## 4 4         57    71    60    69    43    54    33    44    40    28    12   
## 5 5         50    61    52    73    47    39    21    48    24    0     23   
## 6 6         57    61    60    65    30    31    42    35    40    73    23   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <dbl>
## After conversion: 7th Grade Benchmark 2 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1     0    57     4    65    23    20    25    26    12    46    34
## 2         2    40    61    36    62    60    35    33    30    40    37    12
## 3         3    13    61     8    69    67    70    50    44    64    46    34
## 4         4    57    71    60    69    43    54    33    44    40    28    12
## 5         5    50    61    52    73    47    39    21    48    24     0    23
## 6         6    57    61    60    65    30    31    42    35    40    73    23
## # ℹ 12 more variables: `711` <dbl>, `712` <dbl>, `713` <dbl>, `714` <dbl>,
## #   `715` <dbl>, `716` <dbl>, `717` <dbl>, `718` <dbl>, `719` <dbl>,
## #   `720` <dbl>, `721` <dbl>, Per_Question_Average <dbl>
## Before cleaning: 7th Grade Benchmark 3 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         18    70    37    65    25    29    29    18.5  36    23    50   
## 2 2         39    68    37    79    50    42    33    44.4  27    45    38   
## 3 3         89    84    93    68    79    63    48    48.1  73    45    50   
## 4 4         57    90    41    72    61    54    38    48.1  55    67    50   
## 5 5         68    78    44    86    57    33    29    37    27    34    25   
## 6 6         57    70    85    82    46    33    24    22.2  36    78    13   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <dbl>
## After replacing '???': 7th Grade Benchmark 3 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         18    70    37    65    25    29    29    18.5  36    23    50   
## 2 2         39    68    37    79    50    42    33    44.4  27    45    38   
## 3 3         89    84    93    68    79    63    48    48.1  73    45    50   
## 4 4         57    90    41    72    61    54    38    48.1  55    67    50   
## 5 5         68    78    44    86    57    33    29    37    27    34    25   
## 6 6         57    70    85    82    46    33    24    22.2  36    78    13   
## # ℹ 12 more variables: `711` <chr>, `712` <chr>, `713` <chr>, `714` <chr>,
## #   `715` <chr>, `716` <chr>, `717` <chr>, `718` <chr>, `719` <chr>,
## #   `720` <chr>, `721` <chr>, Per_Question_Average <dbl>
## After conversion: 7th Grade Benchmark 3 
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1    18    70    37    65    25    29    29  18.5    36    23    50
## 2         2    39    68    37    79    50    42    33  44.4    27    45    38
## 3         3    89    84    93    68    79    63    48  48.1    73    45    50
## 4         4    57    90    41    72    61    54    38  48.1    55    67    50
## 5         5    68    78    44    86    57    33    29  37      27    34    25
## 6         6    57    70    85    82    46    33    24  22.2    36    78    13
## # ℹ 12 more variables: `711` <dbl>, `712` <dbl>, `713` <dbl>, `714` <dbl>,
## #   `715` <dbl>, `716` <dbl>, `717` <dbl>, `718` <dbl>, `719` <dbl>,
## #   `720` <dbl>, `721` <dbl>, Per_Question_Average <dbl>
## Before cleaning: 8th Grade Benchmark 1 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803`    `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr>    <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         90    69    86    20.7     28.6  38.5  49    44    22.2  43    31   
## 2 2         80    79    83    79.3     60.7  57.7  61    56    63    100   77   
## 3 3         72    83    76    69.5     46.4  30.8  46    41    33    15    16   
## 4 4         83    79    90    75.9000… 53.6  46.2  68    63    51.9  43    31   
## 5 5         76    76    69    65.5     35.7  53.8  60    56    63    15    54   
## 6 6         48    33    28    65.5     8     24    43    39    59.3  50    46   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <dbl>
## After replacing '???': 8th Grade Benchmark 1 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803`    `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr>    <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         90    69    86    20.7     28.6  38.5  49    44    22.2  43    31   
## 2 2         80    79    83    79.3     60.7  57.7  61    56    63    100   77   
## 3 3         72    83    76    69.5     46.4  30.8  46    41    33    15    16   
## 4 4         83    79    90    75.9000… 53.6  46.2  68    63    51.9  43    31   
## 5 5         76    76    69    65.5     35.7  53.8  60    56    63    15    54   
## 6 6         48    33    28    65.5     8     24    43    39    59.3  50    46   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <dbl>
## After conversion: 8th Grade Benchmark 1 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1    90    69    86  20.7  28.6  38.5    49    44  22.2    43    31
## 2         2    80    79    83  79.3  60.7  57.7    61    56  63     100    77
## 3         3    72    83    76  69.5  46.4  30.8    46    41  33      15    16
## 4         4    83    79    90  75.9  53.6  46.2    68    63  51.9    43    31
## 5         5    76    76    69  65.5  35.7  53.8    60    56  63      15    54
## 6         6    48    33    28  65.5   8    24      43    39  59.3    50    46
## # ℹ 9 more variables: `811` <dbl>, `812` <dbl>, `813` <dbl>, `814` <dbl>,
## #   `815` <dbl>, `816` <dbl>, `817` <dbl>, `818` <dbl>,
## #   Per_Question_Average <dbl>
## Before cleaning: 8th Grade Benchmark 2 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         87    92    86    48    40    63    64    70    85    29    17   
## 2 2         90    96    83    80    74    70    77    78    92    43    25   
## 3 3         77    71    90    61    70    59    77    57    88    43    34   
## 4 4         97    83    97    77    59    74    82    57    85    29    25   
## 5 5         73    71    93    74    66    74    64    61    81    43    34   
## 6 6         43    33    45    35    22    61    64    43    70    29    25   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <dbl>
## After replacing '???': 8th Grade Benchmark 2 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         87    92    86    48    40    63    64    70    85    29    17   
## 2 2         90    96    83    80    74    70    77    78    92    43    25   
## 3 3         77    71    90    61    70    59    77    57    88    43    34   
## 4 4         97    83    97    77    59    74    82    57    85    29    25   
## 5 5         73    71    93    74    66    74    64    61    81    43    34   
## 6 6         43    33    45    35    22    61    64    43    70    29    25   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <dbl>
## After conversion: 8th Grade Benchmark 2 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1    87    92    86    48    40    63    64    70    85    29    17
## 2         2    90    96    83    80    74    70    77    78    92    43    25
## 3         3    77    71    90    61    70    59    77    57    88    43    34
## 4         4    97    83    97    77    59    74    82    57    85    29    25
## 5         5    73    71    93    74    66    74    64    61    81    43    34
## 6         6    43    33    45    35    22    61    64    43    70    29    25
## # ℹ 9 more variables: `811` <dbl>, `812` <dbl>, `813` <dbl>, `814` <dbl>,
## #   `815` <dbl>, `816` <dbl>, `817` <dbl>, `818` <dbl>,
## #   Per_Question_Average <dbl>
## Before cleaning: 8th Grade Benchmark 3 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         <NA>  <NA>  <NA>  <NA>  62    28    <NA>  <NA>  61    17    50   
## 2 2         <NA>  <NA>  <NA>  <NA>  86    84    <NA>  <NA>  79    34    34   
## 3 3         <NA>  <NA>  <NA>  <NA>  93    88    <NA>  <NA>  75    50    42   
## 4 4         <NA>  <NA>  <NA>  <NA>  79    56    <NA>  <NA>  61    0     50   
## 5 5         <NA>  <NA>  <NA>  <NA>  90    92    <NA>  <NA>  93    0     50   
## 6 6         <NA>  <NA>  <NA>  <NA>  83    84    <NA>  <NA>  79    67    25   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <dbl>
## After replacing '???': 8th Grade Benchmark 3 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##   <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1         <NA>  <NA>  <NA>  <NA>  62    28    <NA>  <NA>  61    17    50   
## 2 2         <NA>  <NA>  <NA>  <NA>  86    84    <NA>  <NA>  79    34    34   
## 3 3         <NA>  <NA>  <NA>  <NA>  93    88    <NA>  <NA>  75    50    42   
## 4 4         <NA>  <NA>  <NA>  <NA>  79    56    <NA>  <NA>  61    0     50   
## 5 5         <NA>  <NA>  <NA>  <NA>  90    92    <NA>  <NA>  93    0     50   
## 6 6         <NA>  <NA>  <NA>  <NA>  83    84    <NA>  <NA>  79    67    25   
## # ℹ 9 more variables: `811` <chr>, `812` <chr>, `813` <chr>, `814` <chr>,
## #   `815` <chr>, `816` <chr>, `817` <chr>, `818` <chr>,
## #   Per_Question_Average <dbl>
## After conversion: 8th Grade Benchmark 3 
## # A tibble: 6 × 21
##   Questions `800` `801` `802` `803` `804` `805` `806` `807` `808` `809` `810`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1    NA    NA    NA    NA    62    28    NA    NA    61    17    50
## 2         2    NA    NA    NA    NA    86    84    NA    NA    79    34    34
## 3         3    NA    NA    NA    NA    93    88    NA    NA    75    50    42
## 4         4    NA    NA    NA    NA    79    56    NA    NA    61     0    50
## 5         5    NA    NA    NA    NA    90    92    NA    NA    93     0    50
## 6         6    NA    NA    NA    NA    83    84    NA    NA    79    67    25
## # ℹ 9 more variables: `811` <dbl>, `812` <dbl>, `813` <dbl>, `814` <dbl>,
## #   `815` <dbl>, `816` <dbl>, `817` <dbl>, `818` <dbl>,
## #   Per_Question_Average <dbl>
## # A tibble: 6 × 24
##   Questions `700` `701` `702` `703` `704` `705` `706` `707` `708` `709` `710`
##       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1         1     3     3     0    12    30    18    21  23.8    11     9    15
## 2         2    52    27    31    42    57    36    46  42.9    29    46    29
## 3         3    28    57    19    50    47    36    33  47.6    54    28    43
## 4         4    62    50    54    54    37    50    46  14.3    39    37     0
## 5         5    59    53    42    50    23    46    58  28.6    39    37    15
## 6         6    45    40    42    27    40    27    25  23.8    54    27    15
## # ℹ 12 more variables: `711` <dbl>, `712` <dbl>, `713` <dbl>, `714` <dbl>,
## #   `715` <dbl>, `716` <dbl>, `717` <dbl>, `718` <dbl>, `719` <dbl>,
## #   `720` <dbl>, `721` <dbl>, Per_Question_Average <dbl>

Before Cleaning: Each debug message labeled “Before cleaning” shows the initial state of the data in each benchmark tab. It allows us to see if there are any anomalies, such as the presence of ??? or inconsistent formats before cleaning.

After Replacing ‘???’: Each “After replacing ‘???’” message shows that any placeholder ??? values have been successfully replaced by NA. This ensures missing data is handled correctly.

After Conversion: Each “After conversion” message confirms that character columns have been converted to numeric where applicable, ensuring that you can perform calculations and analysis without errors due to character data types.

3.3 Checking the cleaned data:

When combining the data frames, check that the bind_rows function is receiving properly formatted data frames. If the data frames were cleaned to the point where they only contain NA or empty rows, the combined data will also reflect that.

## $`6th Grade Benchmark 1`
## [1] FALSE
## 
## $`6th Grade Benchmark 2`
## [1] FALSE
## 
## $` 6th Grade Benchmark 3`
## [1] FALSE
## 
## $`7th Grade Benchmark 1`
## [1] FALSE
## 
## $`7th Grade Benchmark 2`
## [1] FALSE
## 
## $`7th Grade Benchmark 3`
## [1] FALSE
## 
## $`8th Grade Benchmark 1`
## [1] FALSE
## 
## $`8th Grade Benchmark 2`
## [1] FALSE
## 
## $`8th Grade Benchmark 3`
## [1] FALSE

No Empty Data Frames:

Since every result is FALSE, it means that none of the benchmarks lost all their data during the cleaning process. This is a positive outcome, confirming that the cleaning steps—such as replacing ???, handling missing values, and converting columns to numeric—did not remove so much data that any benchmark tab became completely empty.

4. Data Analysis:

4.1 Combining the data frames:

  • Combine All Benchmark Data into One Data Frame After converting the columns to numeric, combine all the data frames into a single data frame.
## Combined data frame rows: 243
## Rows with NA in 'Per_Question_Average': 9
## # A tibble: 9 × 3
##   Questions Per_Question_Average Benchmark               
##       <dbl>                <dbl> <chr>                   
## 1        NA                   NA "6th Grade Benchmark 1" 
## 2        NA                   NA "6th Grade Benchmark 2" 
## 3        NA                   NA " 6th Grade Benchmark 3"
## 4        NA                   NA "7th Grade Benchmark 1" 
## 5        NA                   NA "7th Grade Benchmark 2" 
## 6        NA                   NA "7th Grade Benchmark 3" 
## 7        NA                   NA "8th Grade Benchmark 1" 
## 8        NA                   NA "8th Grade Benchmark 2" 
## 9        NA                   NA "8th Grade Benchmark 3"
## Rows after NA removal: 234
## # A tibble: 6 × 4
##   Questions Per_Question_Average Grade Benchmark_Number
##       <dbl>                <dbl> <dbl>            <dbl>
## 1         1                 73.9     6                1
## 2         2                 46.2     6                1
## 3         3                 30.4     6                1
## 4         4                 37.6     6                1
## 5         5                 42.0     6                1
## 6         6                 55.6     6                1

Handling Missing Values

  • Rows with NA in ‘Per_Question_Average’: The analysis identified 9 rows with NA values in the Per_Question_Average column. This indicates that there were some entries in the original datasets that could not be converted to numeric values, possibly due to non-numeric characters or missing data.

  • Rows After NA Removal: After removing these rows, the total count dropped to 234 rows. This indicates that the cleaning process was effective in ensuring that only valid, numeric entries remain in the dataset, which is crucial for accurate analysis moving forward.

4.2 Calculating the Performance Growth/Decay:

This step calculates how student performance on individual questions changes (grows or declines) across three benchmarks. It provides insights into whether students are improving or struggling as they progress through the assessments.

The data is grouped by Questions and Grade to calculate performance metrics for each question across the benchmarks.

## # A tibble: 78 × 7
##    Questions Grade Benchmark_1 Benchmark_2 Benchmark_3 Growth_1_to_2
##        <dbl> <dbl>       <dbl>       <dbl>       <dbl>         <dbl>
##  1         1     6        73.9        78.9        81.2          4.92
##  2         1     7        15.7        28.2        40.4         12.5 
##  3         1     8        45.6        62.4        56.1         16.8 
##  4         2     6        46.2        55.3        60.7          9.12
##  5         2     7        39.6        46.9        46.2          7.28
##  6         2     8        68.0        74.6        69.1          6.59
##  7         3     6        30.4        35.8        45.1          5.36
##  8         3     7        43.2        48.6        68.0          5.45
##  9         3     8        48.9        64.8        72.6         15.9 
## 10         4     6        37.6        41.4        56.6          3.81
## # ℹ 68 more rows
## # ℹ 1 more variable: Growth_2_to_3 <dbl>

The growth_data provides a structured overview of student performance over time, enabling educators to evaluate trends and make data-driven decisions. By examining the growth between benchmarks, teachers can better understand student learning dynamics and tailor their instruction accordingly.

4.3 Visualizing the Growth/Decay:

4.3.1 Line Graph:

The line graph visualizes student performance trends across questions for each grade (6th, 7th, and 8th), showing how their average performance changed across the three benchmarks. Here’s a breakdown of the key observations:

  • Red Line (Benchmark 1): Represents the average performance on the first benchmark.

  • Green Line (Benchmark 2): Represents the average performance on the second benchmark.

  • Blue Line (Benchmark 3): Represents the average performance on the third benchmark.

  • Some questions show where performance is notably low across all benchmarks. If the lines for those questions remain at a lower average score, it highlights areas that may need urgent attention or a change in teaching strategy. (example: questions 4 & 17 for 6th grade and question 15 for 7th grade)

  • Conversely, other questions students consistently score well can be noted as strengths. This can inform teaching practices that may be effectively supporting student learning. (example: questions 8, 16 & 25 for 6ht grade, question 14 for 7th grade and question 13 for 8th grade)

Let’s check for outliers:

##    Questions      Grade    Benchmark_1     Benchmark_2     Benchmark_3   
##  Min.   : 1   Min.   :6   Min.   :14.89   Min.   :17.19   Min.   :33.01  
##  1st Qu.: 7   1st Qu.:6   1st Qu.:29.65   1st Qu.:38.30   1st Qu.:47.90  
##  Median :13   Median :7   Median :39.55   Median :48.65   Median :55.80  
##  Mean   :13   Mean   :7   Mean   :40.83   Mean   :49.48   Mean   :56.18  
##  3rd Qu.:19   3rd Qu.:8   3rd Qu.:49.30   3rd Qu.:61.00   3rd Qu.:64.53  
##  Max.   :25   Max.   :8   Max.   :73.94   Max.   :78.86   Max.   :82.93  
##  NA's   :3                                                               
##  Growth_1_to_2    Growth_2_to_3    
##  Min.   :-4.370   Min.   :-19.890  
##  1st Qu.: 5.383   1st Qu.:  2.600  
##  Median : 8.535   Median :  7.080  
##  Mean   : 8.650   Mean   :  6.709  
##  3rd Qu.:12.490   3rd Qu.: 10.855  
##  Max.   :18.450   Max.   : 30.900  
## 

There is no outlier in benchmark 1 and the distribution is normal, which suggests that Benchmark_1 scores are fairly normally distributed. However, based on the summary statisics above, we can conlude:

  • Improvement Over Time: The overall trend across all benchmarks indicates that students are improving in their performance, particularly from Benchmark 1 to Benchmark 2, with further growth into Benchmark 3.

  • Variability in Growth: The presence of negative growth values suggests that while many students improve, some struggle, indicating specific questions may need targeted re-teaching or support.

Let’s check for missing values in the new dataset we created for analysis:

## # A tibble: 0 × 7
## # ℹ 7 variables: Questions <dbl>, Grade <dbl>, Benchmark_1 <dbl>,
## #   Benchmark_2 <dbl>, Benchmark_3 <dbl>, Growth_1_to_2 <dbl>,
## #   Growth_2_to_3 <dbl>

The output indicates that there are no missing values in the growth_data dataset for the Benchmark_1, Benchmark_2, or Benchmark_3 columns.

4.3.2 Bar Plot:

The bar plots provide a clear visual representation of growth trends between the benchmarks for each question,

  • Growth 2 to 3 (Blue) vs Growth 1 to 2 (Red):

Few questions show positive growth between the second and third benchmarks (blue bars on the bottom), followed by positive growth between the first and second benchmarks (red bars on top). This suggests that students improved consistently from the first benchmark to the third.

  • Only Blue Bars (few question on 6th grade): Some questions have only blue bars (Growth 2 to 3) with no red bars (Growth 1 to 2). This indicates that these questions showed improvement only between the second and third benchmarks, but not between the first and second benchmarks. This could imply that students initially struggled with these questions but eventually caught up later in the year.

  • Negative Growth (Blue Bars Below Zero) (several question on 8th grade): two questions have blue bars below zero, meaning that there was a decline in performance between the second and third benchmarks. However, red bars (Growth 1 to 2) for these questions are still positive, suggesting an initial improvement that later decayed.

Possible Interpretations:

  • Consistent Growth: The majority of questions show steady improvement across all benchmarks, which indicates successful teaching strategies and student learning progress.

  • Late Improvement: The questions with only blue bars (Growth 2 to 3) may have required additional reinforcement or reteaching between the second and third benchmarks.

  • Challenges in Later Benchmarks: The questions with negative blue bars (Growth 2 to 3) suggest that students either found the content more challenging during later assessments or there may have been external factors affecting their performance on these questions.

4.3.3 Create an Interactive Table:

The interactive table allows us to dynamically explore the data by filtering, sorting, and searching through the various columns. Here’s what you’re seeing in the output:

Key Columns:

  • Questions: The question number (from 1 to 25).

  • Grade: The grade level (6, 7, or 8).

  • Benchmark_1, Benchmark_2, Benchmark_3: These columns display the average scores for each question in the respective benchmark assessments.

  • Growth_1_to_2: The difference in performance between Benchmark 1 and Benchmark 2 (positive values indicate improvement).

  • Growth_2_to_3: The difference in performance between Benchmark 2 and Benchmark 3 (positive values indicate improvement, and negative values indicate a drop in performance).

Insights of the above table:

  • Interactive Filtering: You can quickly filter for a specific grade, question, or benchmarks to focus on areas that require attention (e.g., negative growth or large performance changes).

  • Dynamic Sorting: Sorting the table by Growth_1_to_2 or Growth_2_to_3 will help identify the highest and lowest growth questions, making it easier to pinpoint which areas need reteaching or reinforcement.

This table enhances the ability to drill down into specific performance trends and helps guide instructional decisions.

4.3.4 Creating a Suggestion Table:

This step involves creating a suggestion table based on students’ performance across the three benchmarks, which helps identify areas for intervention and improvement. Here’s an interpretation of the analysis:

  • The suggestions are derived from the following criteria:

Struggling Students: If the score on Benchmark 3 is below 40, it indicates that students are struggling with that particular question. This suggests the need for more focused practice or instruction to help them improve.

Growth Indicated: If there is a growth of 10 points or more from Benchmark 1 to Benchmark 3, it indicates that students are showing significant improvement on that question. This is a positive outcome and may suggest that previous teaching methods or interventions were effective.

No Significant Change: For questions where the performance does not fit into either of the above categories, the suggestion states “No significant change.” This implies that students’ performance has remained stable, but it might also indicate that no further action is needed unless the scores are deemed unsatisfactory.

Question Performance and Suggestions by Grade
Grade Questions Benchmark_1 Benchmark_2 Benchmark_3 Suggestion
6 1 73.94 78.86 81.18 No significant change.
7 1 15.67 28.19 40.42 Students show growth on this question.
8 1 45.63 62.42 56.14 Students show growth on this question.
6 2 46.17 55.29 60.71 Students show growth on this question.
7 2 39.58 46.86 46.21 No significant change.
8 2 68.04 74.63 69.14 No significant change.
6 3 30.45 35.81 45.11 Students show growth on this question.
7 3 43.17 48.62 67.96 Students show growth on this question.
8 3 48.93 64.79 72.57 Students show growth on this question.
6 4 37.62 41.43 56.64 Students show growth on this question.
7 4 40.98 51.33 56.88 Students show growth on this question.
8 4 59.82 71.21 60.86 No significant change.
6 5 42.03 45.62 57.35 Students show growth on this question.
7 5 35.01 42.71 47.83 Students show growth on this question.
8 5 55.11 67.63 67.86 Students show growth on this question.
6 6 55.58 62.14 69.39 Students show growth on this question.
7 6 32.80 45.29 52.42 Students show growth on this question.
8 6 36.31 40.74 64.71 Students show growth on this question.
6 7 50.40 48.67 58.84 No significant change.
7 7 51.78 63.52 71.16 Students show growth on this question.
8 7 24.98 40.37 47.29 Students show growth on this question.
6 8 62.46 69.57 82.93 Students show growth on this question.
7 8 38.67 44.14 51.33 Students show growth on this question.
8 8 32.34 50.79 56.29 Students show growth on this question.
6 9 14.89 17.19 48.09 Students show growth on this question.
7 9 24.61 33.48 40.91 Students show growth on this question.
8 9 51.34 68.63 64.00 Students show growth on this question.
6 10 34.94 40.86 54.91 Students show growth on this question.
7 10 47.93 57.90 67.57 Students show growth on this question.
8 10 46.27 56.58 46.00 No significant change.
6 11 28.37 30.71 48.53 Students show growth on this question.
7 11 16.93 33.62 44.54 Students show growth on this question.
8 11 21.43 34.11 56.86 Students show growth on this question.
6 12 41.15 56.05 65.19 Students show growth on this question.
7 12 28.35 38.19 44.29 Students show growth on this question.
8 12 38.81 50.32 51.43 Students show growth on this question.
6 13 22.58 29.81 36.76 Students are struggling, they need more practice on this question.
7 13 39.03 49.24 52.08 Students show growth on this question.
8 13 73.31 73.37 67.14 No significant change.
6 14 57.05 67.86 72.96 Students show growth on this question.
7 14 55.07 71.95 82.22 Students show growth on this question.
8 14 25.54 38.58 59.14 Students show growth on this question.
6 15 39.51 47.71 50.43 Students show growth on this question.
7 15 24.40 27.43 38.98 Students are struggling, they need more practice on this question.
8 15 28.01 41.63 60.29 Students show growth on this question.
6 16 44.31 52.24 55.47 Students show growth on this question.
7 16 58.34 64.48 68.42 Students show growth on this question.
8 16 36.13 49.42 54.86 Students show growth on this question.
6 17 28.04 23.67 33.01 Students are struggling, they need more practice on this question.
7 17 46.24 53.71 59.24 Students show growth on this question.
8 17 46.66 54.05 51.00 No significant change.
6 18 56.92 60.38 66.73 No significant change.
7 18 26.95 44.67 51.32 Students show growth on this question.
8 18 53.04 62.68 60.57 No significant change.
6 19 69.60 77.14 80.86 Students show growth on this question.
7 19 33.18 45.67 53.43 Students show growth on this question.
8 19 38.39 44.84 62.00 Students show growth on this question.
6 20 29.94 34.33 41.77 Students show growth on this question.
7 20 33.60 36.43 37.41 Students are struggling, they need more practice on this question.
8 20 26.69 38.21 58.57 Students show growth on this question.
6 21 33.90 36.52 47.18 Students show growth on this question.
7 21 51.18 63.71 72.21 Students show growth on this question.
8 21 44.67 54.47 40.71 No significant change.
6 22 48.28 58.90 61.46 Students show growth on this question.
7 22 29.55 30.43 37.57 Students are struggling, they need more practice on this question.
8 22 54.35 69.89 50.00 No significant change.
6 23 23.43 25.10 34.98 Students are struggling, they need more practice on this question.
7 23 36.54 32.43 39.46 Students are struggling, they need more practice on this question.
8 23 48.17 61.21 54.43 No significant change.
6 24 22.07 30.00 44.54 Students show growth on this question.
7 24 27.38 42.86 61.59 Students show growth on this question.
8 24 23.91 32.05 51.00 Students show growth on this question.
6 25 67.20 75.24 77.21 Students show growth on this question.
7 25 49.43 60.10 65.39 Students show growth on this question.
8 25 46.40 50.68 52.14 No significant change.
6 NA 42.92 47.33 58.67 Students show growth on this question.
7 NA 37.05 46.28 54.03 Students show growth on this question.
8 NA 42.96 54.13 51.62 No significant change.

This suggestion table serves as a valuable tool for educators to identify areas of struggle and growth, guiding their instructional strategies effectively. It highlights the importance of data-driven decision-making in education, helping to ensure that students receive the support they need to succeed.