在 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)
我想在 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)