2017-07-20 75 views
0

我有一个R脚本(让我们称之为myscript.R)这是输入$年的功能。连接R脚本与selectizeInput闪亮

一旦我在shinyapp中选择年份,我希望计算机运行“myscript.R”?

我试着种以下的结构,但它不工作

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

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

你的答案是赞赏!

+0

请分享一个显示您尝试过的最低范例,包括您的闪亮应用程序文件和其他文件。 如果你想使用另一个脚本的函数,你必须使用source(“myscript.R”)来源。然后你可以使用myfunction(输入$ year),就好像它是在同一个文件中定义的一样。 –

回答

0

我不确定脚本中的函数是否真的是你想要的。如果你想输出依赖于输入,你这是怎么做到这一点的闪亮:

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)上面的服务器功能的地方,做my_function(year),我已经加1年。

希望这会有所帮助。

+0

谢谢。但这不是我想要的。在script.R中,我有变量输入$ year。 –

+0

这是不可能的,据我所知,你将不得不在你的script.R中创建一个函数,并将输入$ year作为参数传递,正如我在下面解释我的答案中的大代码块。 – Florian