問題タブ [shiny-reactivity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
82046 参照

r - R シャイニーは、selectInput の選択肢にリアクティブを渡します

光沢のあるアプリ (RStudio による) では、サーバー側に、の内容を解析して変数のリストを返すリアクティブがありますtextInput。変数のリストは、selectInputおよび/またはで使用されupdateSelectInputます。

私はそれを機能させることはできません。助言がありますか?

私は2つの試みをしました。最初のアプローチは、リアクティブoutVarを に直接使用することselectInputです。2 番目のアプローチは、リアクティブを使用することoutVarですupdateSelectInput。どちらも機能しません。

サーバー.R

ui.R

少し前に、shiny-discuss に同じ質問を投稿しましたが、あまり関心がなかったので、お詫びを込めてもう一度質問します。議論/e0MgmMskfWo

編集 1

@Ramnath は、彼によってEdit 2と示されている、機能しているように見えるソリューションを親切に投稿しました。しかし、私の問題のように側面ではなく側面にあるtextinputため、その解決策は問題に対処しません。Ramnath の 2 番目の編集を横に移動すると、問題が再び発生します。つまり、何も表示されず、RStudio がクラッシュします。ラップすると問題がなくなることがわかりました。uiservertextinputserverinput$textas.character

編集 2

outVarさらなる議論の中で、Ramnath は、引数が によって返される前にサーバーが動的関数を適用しようとすると問題が発生することを示しましたtextinput。解決策は、最初にis.null(input$inBody)存在するかどうかを確認することです。

引数の存在を確認することは、光沢のあるアプリを構築するための重要な側面ですが、なぜそれを考えなかったのですか? ええ、そうしましたが、何か悪いことをしたに違いありません。私がその問題に費やした時間を考えると、それは苦い経験です. コードの後に​​、存在を確認する方法を示します。

textinput以下は横に移動したRamnath のコードserverです。RStudio がクラッシュするため、自宅では試さないでください。(私は彼の表記法を使用しました)

私が通常存在を確認する方法は次のとおりです。

Ramnath のコードは短くなります。

両方ともうまくいくようですが、これからはラムナスのやり方でやっていきます: 構文のアンバランスなブラケットが以前にチェックを機能させなかったのでしょうか? Ramnath のチェックはより直接的です。

最後に、さまざまなデバッグの試みについて、いくつかの点に注意したいと思います。

私のデバッグクエストで、サーバー側で「出力」の優先度を「ランク付け」するオプションがあることを発見しました。これは、問題を解決するために調査しましたが、問題が別の場所にあったため機能しませんでした。それでも、知ることは興味深いことであり、現時点ではあまり知られていないようです:

そのクエストでは、私も試し tryました:

それはかなり近いものでしたが、それでも修正されませんでした。

私が最初に見つけた解決策は次のとおりです。

なぜそれが機能したのかを知ることは興味深いと思います.それは物事を十分に遅くするからですか? 非nullになるのをas.character「待つ」からですか?input$text

いずれにせよ、ラムナスの努力、忍耐、指導に心から感謝しています。

0 投票する
1 に答える
2399 参照

r - R Shiny でデータテーブルが表示されない

データベースクエリの結果を含むデータテーブルを表示する光沢のあるアプリを作成しています。データを取得するために社内パッケージを使用していますが、これが正しく機能すると確信しています。

データベースの1つからデータテーブルを表示したいときは問題ありませんが、他のテーブルを表示したいときはテーブルが表示されません。

リアクティブ関数を使用してデータを取得し、renderDataTable() を使用して表示します。コードは次のとおりです。

0 投票する
1 に答える
21692 参照

r - Rシャイニー:リアクティブエラー

住宅ローン計算機と調整可能な償却スケジュールを作成する目的で、最初の Shiny アプリを作成しています。次のコードを runApp() でレンダリングできますが、機能しません (つまり、値を出力せず、グラフも表示しません)。さらに、RStudio のコンソールで次のエラーが生成されます。

「.getReactiveEnvironment()$currentContext() のエラー: アクティブなリアクティブ コンテキストなしでは操作は許可されません。(リアクティブ式またはオブザーバー内からのみ実行できることを実行しようとしました。)」

バックグラウンドで実行しています: Win 7、64 ビット OS | R v3.1.1 | RStudio v0.98.944

ここで定義されている手順を実装しようとしましたが、うまくいきませんでした: Shiny Tutorial Error in R R Shiny - Numeric Input without Selectors

ui.R

サーバー.R

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

0 投票する
1 に答える
3134 参照

r - Shiny で radioButtons の選択肢を反応させるにはどうすればよいですか?

これは私が持っているものであり、問​​題は ui.R が最初に実行されるため、関数 progs() が定義されていない (またはリアクティブ関数の実行方法がわからない) ことだと思います。私のエラーは次のようになります。

lapply(obj, function(val) { : 関数 "progs" が見つかりませんでした

私のコードは次のようになります。

ui.R

サーバー.R

0 投票する
1 に答える
2630 参照

r - 光沢のあるリアクティブ式で以前のリアクティブ値を使用するにはどうすればよいですか?

私のリアクティブ式は、数値のベクトルを生成します。以前にレンダリングされた値を保存して、次回再利用する方法はありますか? 追加のリアクティブ式を作成して値を保存し、最初のリアクティブ式を使用するときに再度呼び出しようとしましたが、次のエラーが発生します。

これは調査であり、機密情報であるため、例全体をアップロードすることはできません。ただし、server.R ファイルに洞察を与えようとしています。

問題は、yvals が ui.R の入力に基づいていることです。ただし、xvals はそうではありません (少なくとも直接ではありません)。したがって、xvals が更新されているときは、古い/前の値を入力として受け取る必要があります。混乱して申し訳ありません-再現可能な例がなければ、私を助けるのは難しいことを認識しています。しかし、基本的には、以前のリアクティブな結果を修正して、次回に再利用したいだけです。

0 投票する
0 に答える
37 参照

r - R Shiny: renderPlot から項目を削除して再度参照する

別のリアクティブ コンテキストにプルしたい光沢のあるアプリの renderPlot オプション内にコードがあります。しかし、その方法を理解するのに苦労していますが、それでも表を参照できます。

私が望むのは、最初のセクションを独自のリアクティブ コンテキストにプルし、renderPlot で参照できるようにすることですが、マトリックスのデータ ソースが入力の 1 つを条件としていると考えると、その方法がわかりません。 . 前もって感謝します!

現在のコード:

望ましいコード (概念)