Использование пользовательской функции в R Shiny, которая возвращает несколько значений, которые я хочу вывести - PullRequest
0 голосов
/ 17 апреля 2020

Итак, моя цель здесь - создать приложение 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...