在 Rscript 中使用取自 ShinyApp 的变量

Use a variable taken from ShinyApp in a Rscript

我想在 Shiny 应用程序中插入一个变量的值并从 R 脚本调用它,但我不知道如何修改脚本 ("myscript.R") 以便从应用程序接收变量(“文本”)。

这是我的代码示例:

library(shiny)
library(shinyBS)

source("myscript.R", local = TRUE)

UI

ui <- fluidPage(
   
  wellPanel(
   fluidRow(
    textInput(inputId = "text", label = "Insert your name...", value = ""),
    actionButton("runScript", "Run")
    ),
  ),
)

服务器

server <- function(input, output, session) {
  
  mylist <- reactiveVal()
  
  observe({ 
    mylist(list(
      text = input$text))
    })
  
  observeEvent(input$runScript, { 
    source("myscript.R", local = list2env(mylist()))
  })
}

R 脚本

myscript <- function(text) 
{ 
  myname <- text
  print(myname)   # I have simplified my code...The use of the variable "text" is more complex
}

非常感谢您的帮助!

在服务器外获取您的 myscript.R 程序,然后调用 observeEvent(...) 内的函数,如下所示。

ui <- fluidPage(
  
  wellPanel(
    fluidRow(
      textInput(inputId = "text", label = "Insert your name...", value = ""),
      actionButton("runScript", "Run")
    ),
  ),
)

source("myscript.R", local = TRUE)

server <- function(input, output, session) {
  
  mylist <- reactiveVal()
  
  observe({ 
    mylist(list(
      text = input$text))
    #print(mylist())
  })
  
  observeEvent(input$runScript, { 
    myscript(mylist())
  })
}

shinyApp(ui, server)