2017-07-20 5 views
0

私は入力$ yearの関数であるRスクリプト(myscript.Rと呼ぶ)を持っています。RスクリプトとselectizeInputをshinyで接続する

shinyappで年を選択すると、コンピュータは "myscript.R"を実行しますか?

私は、次の構造の種類を試してみましたが、それはあなたの答えが高く評価されて

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

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

動作しません!

+0

光り輝くアプリファイルと他のファイルの両方を含め、試したことを示す最小の例をご紹介してください。 別のスクリプトの関数を使用する場合は、 'source(" myscript.R ")'でソースを取得する必要があります。次に、 'myfunction(input $ 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)を行う、と私は年に1を追加したmy_function(year)を行う必要があります。

これが役に立ちます。

+0

ありがとうございます。しかし、これは私が望むものではありません。 script.Rの中に変数$ yearがあります。 –

+0

これは私の知る限りでは不可能ですが、あなたのスクリプトで関数を作成し、引数として$ yearを渡す必要があります。 – Florian

関連する問題