Как я могу ссылаться на фрейм данных, созданный в скрипте R, запущенном из блестящего приложения - PullRequest
1 голос
/ 27 июня 2019

Я уже задавал этот вопрос, но понял, что не совсем ясно описал проблему и поэтому удалил исходное сообщение.

У меня здесь два компонента. Сначала у меня есть блестящее приложение, которое показано ниже:

library(shiny)
library(readxl)
Pre_Match_Odd_Entry <- read_excel("~/Pre Match Odd Entry.xlsx")

ui <- fluidPage(
  numericInput("code","Code:",1),
  numericInput("min","Minute:",1),
  numericInput("hg","Home:",0),
  numericInput("ag","Away:",0),
  numericInput("edge","Edge:",0.02),
  actionButton("runScript", "Get odds"),

  tableOutput("market")
)

server <- function(input, output, session) {

  mylist <- reactiveVal()

  observe({ # create the list
    mylist(list(
      i_code = input$code,
      i_min = input$min,
      i_hg = input$hg,
      i_ag = input$ag,
      i_edge = input$edge
      ))
  })

  observeEvent(input$runScript, {
    source('~/R/Projects/Scripts/Mean Extraction.R', local = list2env(mylist()))
  })
  output$market <- renderTable({ market })
}

shinyApp(ui, server)

Я беру входные данные, которые пользователь предоставляет из блестящего приложения, и передаю их в мой скрипт R, который выполняет вычисления и выводит фрейм данных, который я хочу показать в моем блестящем приложении после нажатия «Получить шансы» кнопка. Этот код описан ниже, показывая только входные данные из блестящего приложения, а затем последнюю строку кода, которая является выводом фрейма данных.

# Start R Script #
CODE = i_code
minute = i_min
hs = i_hg
as = i_ag
edge = i_edge

...
(calculations)
...
market <- data.frame(...)

# End R Script#

Когда я запускаю свое блестящее приложение, я получаю следующую ошибку: Ошибка в источнике (market): объект 'market' не найден

Как правильно ссылаться на эту таблицу в моем блестящем коде, чтобы я мог отображать таблицу при нажатии кнопки «Получить коэффициенты»?

Заранее спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...