valueBox, чтобы показать Максимум столбца, выбранного из selectInput, используя реактивную функцию - PullRequest
0 голосов
/ 07 января 2020

Новый для R Shiny. Когда я пытаюсь реализовать valueBox, используя реактивную функцию, где реактивная функция изменяется посредством выбора имен столбцов, основанных на выборе пользователя, на то место, где я хотел бы получить максимум из выбранного столбца. Если бы массив ошибок не смог найти объект "Ordered_Product_Sales", хотя он явно не мог применить не функцию.

Вот мой код

library(shinythemes)
library(shiny)
library(plotly)
library(lubridate)
library(shinydashboard)
library(shinyWidgets)
ui <- dashboardPage(skin = "black", #theme = shinytheme("cyborg"),
dashboardHeader("Metric Tracker"),
dashboardSidebar(
        sidebarMenu(
          menuItem("Dashboard", tabName = "Dashboard", icon = icon("city"))))

dashboardBody(fluidRow(
tabItems(
    tabItem(tabName = "Dashboard",
box(width = 4,title = "Inputs", solidHeader = TRUE, status = "warning", selectInput("value", "1st Value to Track:" , choices =  c("Units_Ordered", "Buy_Box_Percentage", "Ordered_Product_Sales", "Session_Percentage","aov"), selected = "Ordered_Product_Sales", multiple = FALSE, selectize = TRUE)
valueBoxOutput("max"), valueBoxOutput("min", width = 3)      
      ),

server <- function(input, output){

g <- reactive({
  (input$value)
})

output$max <- renderValueBox({
#maxi <-  max(metricx2[,get(g())])
valueBox(maxi, subtitle = "Max")

Я просто хочу отобразить максимальное значение из столбца, который был выбран в selectInput. Реактив переключается между именами столбцов / selectInput. Metricx2 - это данные, из которых я хочу получить максимальное значение.

Если вам нужен дополнительный код, дайте мне знать, так как это всего лишь фрагмент, и я мог бы оставить что-то информативное.

Спасибо за помощь, я пытаюсь.

1 Ответ

0 голосов
/ 07 января 2020

Вы не показываете достаточно кода для меня, чтобы увидеть, в чем проблема. Вот минимальный рабочий пример:

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
    dashboardHeader(title = "Dynamic boxes"),
    dashboardSidebar(
        selectInput('column', 'Column:', names(mtcars))
    ),
    dashboardBody(
            valueBoxOutput("vbox")
    )
)

server <- function(input, output) {
    output$vbox <- renderValueBox({
        valueBox(
            paste('Maximum of', input$column),
            max(mtcars[[input$column]])
        )
    })
}

shinyApp(ui, server)
...