web-dev-qa-db-ja.com

Rの光沢のあるチュートリアルエラー

Webアプリケーションを作成するためにRで光沢のあるクールな使用法をいくつか見たことがあります。それを自分で使用する方法を学びたいと思っていました。私は今チュートリアルを行っていますが、チュートリアルの入力と出力の部分に到達すると( http://rstudio.github.io/shiny/tutorial/#inputs-and-outputs )問題が発生しました。

具体的には、次のようなエラーが発生します。

.getReactiveEnvironment()$ currentContext()のエラー:アクティブなリアクティブコンテキストがない場合、操作は許可されません。 (リアクティブ関数の内部からのみ実行できることを実行しようとしました。)

私はさまざまなことを試し、オンラインのどこでも検索しましたが、何が問題なのか理解できません。 OS Xバージョン10.8.3でRバージョン2.15.2を実行しています。デフォルトのブラウザはChromeです。

助けてくれてありがとう。

17
Ford

この質問は少し古くなっていることは知っていますが、同じエラーメッセージが表示されたときに検索に来る可能性のある人に対応します。

コードを含めていないので、このエラーメッセージが一般的に発生する理由を見てみましょう。

エラーメッセージに「アクティブなリアクティブコンテキストがないと操作は許可されません。 "と表示された場合、ShinyServer関数内の「リアクティブ」要素にアクセスしていることを意味しますが、outsiderenderTablerenderPlot()などの反応関数のいずれか.

これはShinyServer()内では機能しません

_shinyServer(function(input, output) {
    abc <- input$some.input.option   

  #other reactives here

})
_

修正:reactiveで囲みます

これは動作します:

_shinyServer(function(input, output) {
  abc <- reactive({
   abc <- input$some.input.option    
  })

  #other reactives here

})
_

そして今、ShinyServer関数の内部から、abc()を呼び出すことでその入力パラメーターにアクセスできます。これは反応関数であるため、括弧に注意してください。

お役に立てば幸いです。

51
Ram Narasimhan

私にとっては、renderPrintの使用を忘れたときにこの問題が発生しました。これは、起動したばかりのときに忘れがちです。

例えば:

shinyServer(function(input,output) {
  output$outputString <- input$something
  }
)

本当に必要なのは

shinyServer(function(input,output) {
  output$outputString <- renderPrint({input$something})
  }
)
2
Joe