首页 > 解决方案 > 如何引用从 Shiny App 开始的 R 脚本中创建的数据框

问题描述

我已经问过这个问题,但意识到我对问题的描述不够清楚,因此删除了原始帖子。

我在这里有两个组件在起作用。首先我有我的闪亮应用程序,如下所示:

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#

当我运行闪亮的应用程序时,我得到的错误如下: 源(市场)错误:找不到对象“市场”

如何在我的 Shiny 代码中正确引用此表,以便在按下“获取赔率”按钮时显示该表?

在此先感谢您的帮助!

标签: rshiny

解决方案


推荐阅读