Rachel NOIREAU
02/02/2020
library(shiny)
datac <-data.frame(cbind(mtcars$cyl, mtcars$mpg))
colnames(datac) <- c("cyl", "mpg")
shinyUI(fluidPage(
titlePanel("cars mpg"),
sidebarLayout(
verticalLayout(
sidebarPanel(
sliderInput("mpg_values", "Pick Minimum and Maximum mpg Values",
0, 100, value = c(0, 50)),
checkboxInput("show_4", "Show/Hide 4", value = TRUE),
checkboxInput("show_6", "Show/Hide 6", value = TRUE),
checkboxInput("show_8", "Show/Hide 8", value = TRUE),
submitButton(text = "update", width = "200px")
),
sidebarPanel(
radioButtons("cylToChoose", "Choose the cyl", choices = c(4, 6, 8), selected = NULL,
inline = FALSE, width = "100px", choiceNames = NULL,
choiceValues = NULL),
textInput("valToAdd", "mpg", value = "", width = "100px",
placeholder = "XX.XX"),
submitButton(text = "add data", width = "200px")
)
),
mainPanel(
h3("Graph"),
plotOutput("plot1"),
)
)
))
<!–html_preserve–>
shinyServer(function(input, output) {
output$plot1 <- renderPlot({
set.seed(2020-02-02)
ifelse(input$valToAdd != "" , datac <<- rbind(datac,c(input$cylToChoose, input$valToAdd)) , datac <<- datac)
minX <- input$mpg_values[1]
maxX <- input$mpg_values[2]
ifelse(input$valToAdd != "" , datac <- rbind(datac,c(input$cylToChoose, input$valToAdd)) , datac <- datac)
ifelse(input$show_4,dataToPlot <- subset(datac, cyl == 4), dataToPlot <- data.frame(c()) )
ifelse(input$show_6, dataToPlot <- rbind(subset(datac, cyl == 6), dataToPlot), dataToPlot <- data.frame(c(dataToPlot)))
ifelse(input$show_8, dataToPlot <- rbind(subset(datac, cyl == 8), dataToPlot), dataToPlot <- data.frame(c(dataToPlot)))
dataX <- dataToPlot$cyl
dataY <- dataToPlot$mpg
xlab <- "cyl"
ylab <- "mpg"
main <- "mpg depending on cyl"
plot(dataX, dataY, xlab = xlab, ylab = ylab, main = main,
xlim = c(2, 10), ylim = c(minX, maxX))
})
})
What can you do with this app
view only a part of the data base by change cyl or max/min of mpg (have to update to see change)
add new data in data base
You can see the app there : https://courserarachelnnoireau45646.shinyapps.io/app2/