The dataset by proposed by Sheryl Piechocki, the details can be found here.

Based on the data we’ve analyzed the student has maintained an overall grade above 90% with her best performance on ACT Prep matreial which has an overall of 94.34%. This is spite of the poor performance during chapter 1 in which she scored 60% which was her lowest grade so far. It is encouraging to see that she improved her grade for the second trimester by almost 7%.

suppressMessages(library(tidyverse))
repcard <- 
  read_csv("repcard.csv", #import the csv file into a df
           col_types = 
             cols(
              `ACT Prep` = "i",
              Chapter = "i", 
              Classwork = "i", 
              Writing = "i"), 
           skip = 1) %>%
  as_tibble() %>% # Convert to a tibble
  mutate(Trimester = ifelse(Chapter < 5,1,2)) %>% #Add trimester as a variable
  rename(ACT_prep = `ACT Prep`) %>% #rename variable
  filter(!is.na(Chapter)) %>% #Remove NA values
  select(Trimester, everything()) %>% #Set Trimester as first variable
  gather("Component","Grade",3:5) #Set grade components as rows
## Warning: 6 parsing failures.
## row       col   expected      actual          file
##   6 Chapter   an integer Trimester 2 'repcard.csv'
##   6 Writing   an integer Category    'repcard.csv'
##   7 Chapter   an integer Chapter     'repcard.csv'
##   7 Writing   an integer Writing     'repcard.csv'
##   7 Classwork an integer Classwork   'repcard.csv'
## ... ......... .......... ........... .............
## See problems(...) for more details.
p <- ggplot(repcard, aes(x = Component, y = Grade, fill = Component))
p <- p + ggtitle("Grade by Chapter & Component")
p <- p + theme(legend.position = "bottom")
p <- p + geom_bar(stat = "identity", width = 0.95, position = "stack")
p <- p + facet_grid(. ~ Chapter)
p <- p + theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank())
p

p <- ggplot(data = repcard, aes(x = Chapter, y = Grade, fill = Component))
p <- p + ggtitle("Grade by Chapter & Component")
#p <- p + scale_y_continuous(labels = scales::percent)
p <- p + theme(legend.position = "none")
#p <- p + scale_fill_manual(values=c('#01426A','#8D0013'))
p <- p + geom_bar(stat = "identity", width = 0.95)
p <- p + facet_grid(. ~ Component)
p

grades_by_c <- repcard %>%
  group_by(Component) %>%
  summarise(avg_grade = mean(Grade))

(grades_by_c)
## # A tibble: 3 x 2
##   Component avg_grade
##   <chr>         <dbl>
## 1 ACT_prep       94.4
## 2 Classwork      91.2
## 3 Writing        90.6
grades_by_chp <- repcard %>%
  group_by(Chapter) %>%
  summarise(avg_grade = mean(Grade))

(grades_by_chp)
## # A tibble: 8 x 2
##   Chapter avg_grade
##     <int>     <dbl>
## 1       1      78.3
## 2       2      93.3
## 3       3      96.7
## 4       4      86.7
## 5       5      96.7
## 6       6      88.3
## 7       7     100  
## 8       8      96.7
grades_by_tri <- repcard %>%
  group_by(Trimester) %>%
  summarise(avg_grade = mean(Grade))

(grades_by_tri)
## # A tibble: 2 x 2
##   Trimester avg_grade
##       <dbl>     <dbl>
## 1         1      88.8
## 2         2      95.4