Итак, моя цель здесь - создать приложение Shiny, которое принимает пользовательский текст, а затем запускает пользовательскую функцию по нажатию кнопки, которая принимает эти входные данные в качестве параметров. После запуска функции отображаются функции нескольких выходов (график, 3 кадра данных). При нажатии на кнопку, функция не запускается в моей консоли. Как только эта проблема будет решена, мне нужно выяснить, как получить доступ к элементам списка, который возвращает функция, чтобы использовать их в качестве элементов вывода.
UI
library(shiny)
library(DT)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput(inputId = 'specify_team', label = "Specify Team", placeholder= "Team"),
textInput(inputId = 'specify_player', label = "Specify Player", placeholder= "Player"),
textInput(inputId = 'specify_year', label = "Specify Year", placeholder= "Year")),
mainPanel(
actionButton("run", "run code"),
plotOutput('shotchart'),
dataTableOutput('overall'),
dataTableOutput('area'),
dataTableOutput('zone')
))
)
Определить функцию (выполнено вне сервера, не уверен, что это правильно) - функция возвращает список с его выходами, которые я хочу использовать из него.
bball <- function (specify_team, specify_player, specify_year){
. . .
. . .
newlist <<- list(overall_summary,shot_zone_summary,shot_area_summary,end_plot)
}
Сервер
#store reactive values
specify_team <<- reactive({input$specify_team})
specify_player <<- reactive ({input$specify_player})
specify_year <<- reactive ({input$specify_year})
vals <-reactiveValues(area = NULL,
zone = NULL,
overall = NULL,
shotchart = NULL)
data <- eventReactive(input$run, {
bball_ret <<-bball(specify_team,specify_player,specify_year)
})
output$area = renderDataTable(data[3] ) #newlist[3] #shot_area_summary
output$zone = renderDataTable(data[2] ) #newlist[2] #shot_zone_summary
output$overall = renderDataTable(data[1] ) #newlist[1] #overall_summary
output$shotchart = renderPlot(data[4] ) #newlist[4] #end_plot
}
shinyApp(ui = ui, server = server)