如何让用户选择 R-shiny 中的数据?

How to let user pick the data in R-shiny?

我有一个数据框,显示了几种产品的历史销售额:

# A tibble: 1,430 x 4
   date           prod1      prod2      prod3
   <date>         <dbl>      <dbl>      <dbl>     
 1 2018-01-01     86405      79841      79527   
 2 2018-01-02     187858     151150     110973   
 3 2018-01-03     165850     128996     126793
 4 2018-01-04     151554     96010      96063
 5 2018-01-05     158725     152791     112768
 6 2018-01-06     107586     110958     69742
 7 2018-01-07     325143     216590     156337
 8 2018-01-08     128492     71977      103863
 9 2018-01-09     142117     75013      107610
10 2018-01-10     182920     90451      125992

我想创建一个交互式绘图工具,在 x 轴上绘制日期,在 y 轴上绘制销售额。用户应使用 selectInput() 选择要预测的产品。如果用户选择 prod3 那么应用程序应该绘制 dateprod3.

这是我目前所做的:

    ui <- fluidPage(
        # Application title
        titlePanel("Plotting tool"),
        sidebarLayout(
            sidebarPanel(
                selectInput(inputId = "prod",
                            label = "Select product group to plot:",
                            choices = c("prod1","prod2","prod3"), 
                            selected = NULL,
                            multiple = FALSE,
                            selectize = TRUE,
                            width = NULL,
                            size = NULL)
                ),
        # Show a plot of the raw data
        mainPanel(plotOutput(outputId = "plot"))
        )
    )

   server <- function(input, output) {        
    
      output$plot <- renderPlot({
          title <- "Time series of raw data"

          chosen_prod <- input$prod

          # plot time series
        
          plot(df$ds, df$chosen_prod)
    })
}

# Run the application 
shinyApp(ui = ui, server = server)

但是我收到错误:"Warning: Unknown or uninitialised column: chosen_prod."我的理解是 input$prod return 是一个字符串,所以 df$chosen_prod 应该只是 return 所需的列值.我错过了什么?

"chosen_prod" 不是 df 中的列。试试这个。

plot(df$ds, df[[chosen_prod]])