【问题标题】:Connect R script with selectizeInput in shiny用闪亮的 selectizeInput 连接 R 脚本
【发布时间】:2017-07-20 12:44:11
【问题描述】:

我有一个 R 脚本(我们称之为 myscript.R),它是 input$year 的函数。

在闪亮应用中选择年份后,我希望计算机运行“myscript.R”?

我尝试了以下结构,但它不起作用

fun=function(input,ouput,session){
    year= input$year
}

observeEvent(input$year,{
    fun(input,output,session)
})

感谢您的回答!

【问题讨论】:

  • 请分享一个显示您尝试过的最小示例,包括您的闪亮应用文件和其他文件。如果你想使用另一个脚本中的函数,你必须使用source("myscript.R") 获取它。然后你可以使用myfunction(input$year),就像它是在同一个文件中定义的一样。

标签: r shiny rstudio


【解决方案1】:

我不确定脚本中的函数是否真的是您想要的。如果你想让输出依赖于输入,这就是你在 Shiny 中的做法:

library(shiny)

ui <- fluidPage(
  selectInput("year","Year: ",choices=c(2000,2001,2002)),
  textOutput("test")
)

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

  test_reactive <- reactive({
    year = as.numeric(input$year)
    year = year + 1
    return(year)
  })

  output$test <- renderText({
    test_reactive()
  })
}

runApp(shinyApp(ui, server))

如果你真的想从脚本中调用一个函数,并且在 script.R 中你有一个函数,比如:

my_function <- function(year)
{
...
}

您应该在服务器函数上方的某处执行source(script.R),并在我为年份加1的位置执行my_function(year)

希望这会有所帮助。

【讨论】:

  • 谢谢。但这不是我想要的。在 script.R 中,我有变量 input$year.
  • 据我所知,这是不可能的,您必须在 script.R 中创建一个函数并将 input$year 作为参数传递,正如我在答案中的大代码块下面解释的那样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 2021-06-27
  • 2019-01-24
  • 2018-12-22
  • 2021-05-16
相关资源
最近更新 更多