【发布时间】:2020-05-23 16:53:30
【问题描述】:
我正在开发一个 Shiny 应用程序,我希望让最终用户能够指定一个值,然后在后台进行计算并在汇总表中生成结果.
到目前为止,我已经能够创建用于选择的仪表板和基于这些选择的汇总表。
以下示例是所有权组拥有的一组餐厅。每家餐厅每天都有一张网。 UI 允许所有者选择多个餐厅,这些餐厅填充一张桌子,并有第二张汇总表汇总每日净值。
我希望为每家餐厅提供第二个输入,业主可以手动指定他们希望每家餐厅营业的小时数,并在汇总表中获取 @987654321 的总和@ / hours_opened 这样他们就可以根据自己决定将某些餐厅比其他餐厅营业多长时间来预测他们的总收入。
这是我目前所拥有的:
library(shiny)
library(knitr)
library(tidyverse)
## data
Restaurant <- c("R1", "R2", "R3", "R4", "R5")
daily_net <- c(250000, 90000, 165000, 113000, 340000)
df <- data.frame(Restaurant, daily_net)
df
## UI
ui <- fluidPage(
titlePanel("Total Income"),
selectizeInput(
inputId = "Restaurant",
label = "Restaurant",
choices = Restaurant,
selected = "",
multiple = T
),
mainPanel(tableOutput(outputId = "r_table"),
tableOutput(outputId = "summary_table"))
)
## Server
server <- function(input, output){
dat <- reactive({
dataset1 <- df %>% filter(Restaurant %in% input$Restaurant)
dataset1
})
dat2 <- reactive({
dataset2 <- dat() %>%
summarize(total_net = sum(daily_net))
dataset2
})
output$r_table <- renderTable(dat(), align = "l")
output$summary_table <- renderTable(dat2(), align = "l")
}
## Run app
shinyApp(ui = ui, server = server)
【问题讨论】: