--- title: "Diamonds Explorer" author: "Barkamian Analytics" format: dashboard server: shiny --- ```{r} #| context: setup library(ggplot2) dataset <- diamonds ``` # {.sidebar} ```{r} sliderInput('sampleSize', 'Sample Size', min=1, max=nrow(dataset), value=min(1000, nrow(dataset)), step=500, round=0) br() checkboxInput('jitter', 'Jitter') checkboxInput('smooth', 'Smooth') ``` ```{r} selectInput('x', 'X', names(dataset)) selectInput('y', 'Y', names(dataset), names(dataset)[[2]]) selectInput('color', 'Color', c('None', names(dataset))) ``` ```{r} selectInput('facet_row', 'Facet Row', c(None='.', names(diamonds[sapply(diamonds, is.factor)]))) selectInput('facet_col', 'Facet Column', c(None='.', names(diamonds[sapply(diamonds, is.factor)]))) ``` # Plot ```{r} plotOutput('plot') ``` # Data ```{r} tableOutput('data') ``` ```{r} #| context: server dataset <- reactive({ diamonds[sample(nrow(diamonds), input$sampleSize),] }) output$plot <- renderPlot({ p <- ggplot( dataset(), aes_string(x=input$x, y=input$y)) + geom_point() if (input$color != 'None') p <- p + aes_string(color=input$color) facets <- paste(input$facet_row, '~', input$facet_col) if (facets != '. ~ .') p <- p + facet_grid(facets) if (input$jitter) p <- p + geom_jitter() if (input$smooth) p <- p + geom_smooth() p }) output$data <- renderTable({ dataset() }) ```