3.2 sidebarLayout()
There are 2 components in sidebarLayout()
, namely sidebarPanel()
and mainPanel()
. Later you will see that I have used different layouts like fluidRow
,box
, etc.
3.2.1 sidebarPanel()
sidebarPanel()
is the left panel of the app.
# sidebarPanel
sidebarPanel(
selectInput("dt", "Select Dataset", choices = c("mtcars", "iris")),
uiOutput("var"),
actionButton("submit", "Plot"),
hr()
)
You see there are three input controls selectInput()
, uiOutput()
, actionButton()
and hr()
.
selectInput()
Users can select different datasets, I used "mtcars"
, and "iris"
datasets from this application.
This is the selectInput() function selectInput(inputId, label, choices, selected = NULL, multiple = FALSE,selectize = TRUE, width = NULL, size = NULL)
. For this function inputId
is"dt"
,label
is " Select Dataset "
and choices
isc ("mtcars", "iris")
uiOutput()
Users can select the variables to be plotted. The choices were variable names from the selected dataset. uiOutput
is dynamic UI, it is intended to be used with renderUI on the server side. This is uiOutput()
function uiOutput(outputId, inline = FALSE, container = if (inline) span else div, ...)
. We will go over renderUI
next session of Chapter 4
# Select Variable for plot
output$var <- renderUI({
req(dt())
selectInput(
"var_plot",
label = "Select Variable",
choices = names(dt()),
multiple = FALSE
)
})
actionButton()
This is the actionButton() function actionButton(inputId, label, icon = NULL, width = NULL, ...)
, executed the Plot
action of the selected variable, theinputId
argument is " submit "
, and label
is"Plot"
.
hr()
is a horizontal line.
3.2.2 mainPanel()
mainPanel()
is the application’s right panel
There is a
tabsetPanel()
function that creates a tabset containingtabPanel
elements. Tabsets are useful for dividing output into several independently viewable sections.This is the function tabsetPanel()
tabsetPanel(..., id = NULL, selected = NULL, type = c("tabs", "pills"), position = NULL)
- I set
id
to"tab_id"
, my recommendation is to setid
fortabsetPanel ()
andvalue
fortabPanel ()
to be easier to use if you have a complex app
I created two
tabPanel()
:tabPanel("Data Review",value = "data_tab", br(), br(), DT::DTOutput("dtable"), br(), br())
. This is Data Review Tab withvalue
="data_tab"
. This tab contained the dataset table, named `DT :: DTOutput (" dtable ") ’.tabPanel (" Plot ", value =" plot_tab ", br (), br (), plotOutput (" plot_out ", width =" 70% ", height =" 550px "), br (), uiOutput (" dl_butt "))
. This is the Plot tab withvalue
="plot_tab"
. This tab contained the plot, named" plot_out "
and the download button, named" dl_butt "
Note: br()
is a line break.