R shinydashboard ——1. 基本用法

Posted jessepeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R shinydashboard ——1. 基本用法相关的知识,希望对你有一定的参考价值。

shiny和shinydashboard使用虽然简单,但控件众多,需及时总结归纳。
install.packages("shinydashboard")

shinydashboard的UI包括三部分结构:头header,侧边栏siderbar和主体body:

## ui.R ##
library(shinydashboard)

dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody()
)

结合server看下基础结构的效果:

## app.R ##
library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody()
)

server <- function(input, output) { }

shinyApp(ui, server)

技术图片
添加内容,如在body中添加box:

## app.R ##
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Basic dashboard"),
  dashboardSidebar(),
  dashboardBody(
    # Boxes need to be put in a row (or column)
    fluidRow(
      box(plotOutput("plot1", height = 250)),

      box(
        title = "Controls",
        sliderInput("slider", "Number of observations:", 1, 100, 50)
      )
    )
  )
)

server <- function(input, output) {
  set.seed(122)
  histdata <- rnorm(500)

  output$plot1 <- renderPlot({
    data <- histdata[seq_len(input$slider)]
    hist(data)
  })
}

shinyApp(ui, server)

技术图片

添加侧边栏内容,如添加菜单项menuItem(和shiny中tabPanel类似):

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Basic dashboard"),
  
  ## Sidebar content
  dashboardSidebar(
    sidebarMenu(
      menuItem("Dashboard",tabName = "dashboard",icon = icon("dashboard")),  #菜单1
      menuItem("Widgets",tabName = "widgets",icon = icon("th"))
    ) #菜单2
  ),

  ## Body content
  dashboardBody(
    tabItems(
      # First tab content 菜单1
      tabItem(tabName = "dashboard",
              fluidRow(
                box(plotOutput("plot1", height = 250)),
                
                box(
                  title = "Controls",
                  sliderInput("slider", "Number of observations:", 1, 100, 50)
                )
              )
      ),
      
      # Second tab content 菜单2
      tabItem(tabName = "widgets",
              h2("Widgets tab content")
      )
    )
  )
)


server <- function(input, output){
  set.seed(1)
  histdata <- rnorm(500)
  output$plot1 <- renderPlot({
    data <- histdata[seq_len(input$slider)]
    hist(data)
  })
}

shinyApp(ui, server)

技术图片

Ref:
https://rstudio.github.io/shinydashboard/get_started.html




以上是关于R shinydashboard ——1. 基本用法的主要内容,如果未能解决你的问题,请参考以下文章

在 Shinydashboard 中渲染 ggplot 时出现致命错误

R + Shiny 哪个锤子?直的 Shiny、flexdashboard 还是 shinydashboard? [关闭]

shinydashboard ui.R 和 server.R 未读取 Global.R

r 调整d3heatmap / renderUI / shinydashboard / DT的大小

R shinyDashboard 自定义框状态颜色

r 示例使用shinydashboard中的renderUI动态调整d3heatmap的大小