私の輝くアプリで再帰に問題があります。私のアプリケーションがファイルを読み込んでデータセット(dataset()
)を作成したとします。次に、私は上記のデータセットを処理し、別のデータセットを作成する機能を持っています(dataset.proc()
)。私はデータセットに必要なだけ何度でも処理を適用できます(いくつかの処理方法があります)。別の関数は、作成された最新のデータセット(dataset.current()
)を追跡します。私server.Rスクリプトの重要な部分のR Shiny:反復を避けるために反応式を保存
Here'sa簡単な例:
dataset <- reactive(#reads file and creates dataset)
dataset.current <- reactive ({
if (!is.null(dataset())){
if (!is.null(dataset.proc())) {
return(dataset.proc())
} else {
return (dataset())
}
}
})
dataset.proc <- reactive(#processes dataset.current() according to user input, creates a processed dataset)
は、私ができる任意の方法を避けるために非反応性の表現として「店のdataset.proc()あり明白な誤り:
evaluation nested too deeply: infinite recursion
すべてのヘルプははるかに高く評価されるだろう:)
おそらく、あなたは 'dataset'を反応値として保存できます(http://shiny.rstudio.com/reference/shiny/latest/reactiveValues.html参照)。反応性値を変更する(すなわち、新しいデータセットをロードする)とき、それに依存する他のすべての反応性関数がトリガされる。 –
あなたのanwserに感謝します:)私は最終的に以下の答えからアイデアを適応させる問題を解決しました。 –