Как указать menuItem в ShinyDashboard? - PullRequest
0 голосов
/ 08 января 2020

Я создаю веб-приложение Shiny с использованием пакета shinydashboard версии 0.7.1.

. Поэтому я столкнулся с проблемой, когда при указании menuItem.

ничего не происходит. пример:

library(shinydashboard)
library(sqldf)
library(DBI)
library(foreign)
library(RPostgres)
library(stringr)
library(readxl)
library(ggplot2)
library(ggpubr)
library(formattable)
library(reshape2)

header <- dashboardHeader(title = "S-T")
sidebar <- dashboardSidebar(
    textInput("banc_lics", "No of license", value=1),
    dateInput("date_an", "Input date", value = "2019-02-01" ),
    sidebarMenu(
        sidebarMenu(
            menuItem("Credit Risk", tabName = "Credit Risk",  icon("abacus")),
            menuItem("Equity Risk", tabName = "Equity Risk", icon("wave-tiangle")))
        ),
    submitButton("Submit", icon("calculator"))
)

page <- dashboardBody(
    tabItems(
        tabItem(
            tabName = "Credit Risk", h1("Credit Risk"),
            fluidRow(
                box(width=12, title = "Таблица", tableOutput("data_table"))
            ),
            fluidRow(
                box(width=12, title = "График", plotOutput("data_plot"))
            ) 
        ),
        tabItem(tabName = "Equity Risk", h2("Equity Risk"))
    )
)

ui <-  dashboardPage(header, sidebar, page, skin="yellow")

server <- function(input, output) {}

shinyApp(ui = ui, server = server)

Я не вижу заданных data_table и data_plot в теле.

Есть идеи, как мне решить эту проблему?

Спасибо.

1 Ответ

1 голос
/ 08 января 2020

Мало что нужно изменить ...

  1. У вас есть лишний sidebarMenu(), который был ненужным
  2. Вам нужно icon("x"), чтобы быть icon = icon("x")

Полный код:

library(shinydashboard)

header <- dashboardHeader(title = "S-T")
sidebar <- dashboardSidebar(
  textInput("banc_lics", "No of license", value=1),
  dateInput("date_an", "Input date", value = "2019-02-01" ),
  sidebarMenu(
        menuItem("Credit Risk", tabName = "CR",  icon = icon("abacus")),
        menuItem("Equity Risk", tabName = "ER", icon = icon("wave-tiangle"))
      ),
  submitButton("Submit", icon("calculator"))
)

body <- dashboardBody(
  tabItems(
    tabItem(tabName = "CR", 
            h1("Credit Risk"),
            fluidRow(
              box(width=12, title = "Таблица", tableOutput("data_table"))
            ),
            fluidRow(
              box(width=12, title = "График", plotOutput("data_plot"))
            )
            ),
    tabItem(tabName = "ER", 
            h2("Equity Risk")
            )
  )
)

ui <-  dashboardPage(header, sidebar, body, skin="yellow")

server <- function(input, output) {}

shinyApp(ui = ui, server = server)
...