Hello,

Thanks for the data.
There were some, not many, bugs that I have corrected below.



library(tidyverse)
#library(stringr)    # attached with tidyverse
#library(readr)
library(shiny)

ttclasses <- read_csv("~/tmp/ttclasses.csv")

#Filter data
ttclasses <-ttclasses %>%
  filter(str_detect(assessment, "Assignment"))

# With the attached data this filter
# removes all rows so I have
# commented it out
#ttclasses <-ttclasses %>%
#  filter(str_detect(name, "Name"))

##Remove NA values.
ttclasses <-ttclasses %>% drop_na("score")

#Convert to factor
ttclasses$assessment <- factor(ttclasses$assessment)

# please see the formats in help("strptime")
ttclasses$due_date <-  as.Date(ttclasses$due_date, format = "%m/%d/%y")
##ttclasses$name <- factor(ttclasses$name)

# Define UI ----
ui <- fluidPage(

  # App title ----
  titlePanel("Assessment Dashboard"),

  # Sidebar layout with input and output definitions ----
  sidebarLayout(

    # Sidebar panel for inputs ----
    sidebarPanel(

      # Input: Selector for variable to plot the grades for the selected
      # assignment ----
        selectInput("assessment", "Assessment:",
                    c("Assignment 1" = "Assignment 1",
                      "Assignment 2" = "Assignment 2",
                      "Assignment 3" = "Assignment 3",
                      "Assignment 4" = "Assignment 4",
                      "Assignment 5" = "Assignment 5")),
      selectInput("name", "Name:",
                  ttclasses[,2]),

      dateRangeInput("due_date",
                     "Due-Date:",start = max(ttclasses$due_date) ,
                     separator = " - ")
    ),

    # Main panel for displaying outputs ----
    mainPanel(

      # Output: Plot of the requested variable against grade ----
      plotOutput("gradePlot")

    )
  )
)

# Define server logic to plot  ----
server <- function(input, output) {
  output$gradePlot <- renderPlot({
    grade_ad = input$assessment
    boxplot(ttclasses$score[ttclasses$assessment==grade_ad],
frame.plot=FALSE, horizontal=TRUE, col="magenta", main=grade_ad)
    ttclasses <-ttclasses %>%
      filter(ttclasses$due_date >= input$due_date[1] & ttclasses$due_date
             <= input$due_date[2])
  })
}

# Create Shiny app ----
shinyApp(ui, server)



Hope this helps,

Rui Barradas

Às 18:03 de 07/06/21, Biplab Nayak escreveu:
Hi All,
I Need a bit of help to fix the code.
Code:
library(readr)
library(shiny)
ttclasses <- read_csv("ttclasses.csv")

#Filter data
library(stringr)
library(dplyr)
ttclasses <-ttclasses %>%
   filter(str_detect(assessment, "Assignment"))
ttclasses <-ttclasses %>%
   filter(str_detect(name, "Name"))

##Remove NA values.
library(tidyverse)
ttclasses <-ttclasses %>% drop_na("score")

#Convert to factor
ttclasses$assessment <- as.factor(ttclasses$assessment)
ttclasses$due_date =  as.Date(ttclasses$due_date, format = "mm/dd/yy")
##ttclasses$name <- as.factor(ttclasses$name)

# Define UI ----
ui <- fluidPage(

   # App title ----
   titlePanel("Assessment Dashboard"),

   # Sidebar layout with input and output definitions ----
   sidebarLayout(

     # Sidebar panel for inputs ----
     sidebarPanel(

       # Input: Selector for variable to plot the grades for the selected
assignment ----
       selectInput("assessment", "Assessment:",
                   c("Assignment 1" = "Assignment 1",
                     "Assignment 2" = "Assignment 2",
                     "Assignment 3" = "Assignment 3",
                     "Assignment 4" = "Assignment 4",
                     "Assignment 5" = "Assignment 5")),
       selectInput("name", "Name:",
                   ttclasses[,2]),

     dateRangeInput("due_date",
                    "Due-Date:",start = max(ttclasses$due_date) ,
                    separator = " - ")
     ),

     # Main panel for displaying outputs ----
     mainPanel(

       # Output: Plot of the requested variable against grade ----
       plotOutput("gradePlot")

     )
   )
)

# Define server logic to plot  ----
server <- function(input, output) {
     output$gradePlot <- renderPlot({
     grade_ad = input$assessment
     boxplot(ttclasses$score[ttclasses$assessment==grade_ad],
frame.plot=FALSE, horizontal=TRUE, col="magenta", main=grade_ad)
     ttclasses <-ttclasses %>%
       filter(ttclasses$due_date >= input$due_date[1] & ttclasses$due_date
<= input$due_date[2])
   })
}

# Create Shiny app ----
shinyApp(ui, server)

Thanks & Regards

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to