为了演示目的,我实现了一个子菜单。您可以类似地扩展到其他人。你们非常亲密。
下面的代码:
ui <- dashboardPage(#skin="purple-light",
dashboardHeader(title="Testing"),
dashboardSidebar(width=200,
sidebarMenu(
menuItem("Menu1", tabName = "dashboard",startExpanded = TRUE,
menuSubItem("Sub Menu1", tabName = "sub1"),
menuSubItem("Sub Menu2", tabName = "sub2")),
menuItem("Menu2", tabName= "Widgets",startExpanded = TRUE,
menuSubItem("Sub Menu3", tabName = "sub3"),
menuSubItem("Sub Menu4", tabName = "sub4")))),
dashboardBody(radioGroupButtons("rb1",label=NULL, choices = c("choice1","choice2"), selected=
"choice1",individual= TRUE,status="info", justified= TRUE ,direction= "horizontal"),
tabItems(
tabItem("sub1",title= "Tab1",
#fluidRow(plotOutput("plotgraph1")), #A1
fluidRow(plotOutput("plotgraph2"))) #A2
# tabItem("sub2", title= "Tab2",
# fluidRow(plotOutput("plotgraph3")), #A3
# fluidRow(plotOutput("plotgraph1"))), #A4
#
# tabItem("sub3", title= "Tab3",
# fluidRow(plotOutput("plotgraph3")), #A5
# fluidRow(plotOutput("plotgraph2"))), #A6
#
# tabItem("sub4", title= "Tab4",
# fluidRow(plotOutput("plotgraph1")), #A7
# fluidRow(plotOutput("plotgraph1")) ) #A8
))) #A8
server <- function(input,output){
set.seed(1234)
pt1 <- qplot(rnorm(500),fill=I("red"),binwidth=0.2,title="plotgraph1")
pt3 <- qplot(rnorm(600),fill=I("blue"),binwidth=0.2,title="plotgraph3")
pt2 <- reactive({
req(input$rb1)
if (input$rb1 =="choice1"){
return(qplot(rnorm(500),fill=I("blue"),binwidth=0.2,title="plotgraph1"))
}else if (input$rb1 =="choice2") {
return(qplot(rnorm(500),fill=I("red"),binwidth=0.2,title="plotgraph2"))
}else {return(NULL)}
})
output$plotgraph1 = renderPlot({pt1})
output$plotgraph2 = renderPlot({pt2()})
output$plotgraph3 = renderPlot({pt3})
}
shinyApp(ui, server)
给出这个输出:
您可以添加皮肤并展开它。
另外,是的,您可以在给定选项卡中添加一堆项目。例如,您可以输出绘图、数据表、uiOutput 等,如下所示。
tabPanel("Plot", value="tab3",
plotlyOutput("plot11", height=750),
DT::dataTableOutput("testtable3")
uiOutput("saveplotsbtn1"))