ShinyとShinyのダッシュボードでもっと経験を積んでいます。R Flexdashboard:他のコンポーネントからfileInputを介してアップロードされたデータを呼び出す
ggplotly exampleを複製したいと思いますが、file upload機能をShinyと組み合わせたいとします。つまり、9つのflexdashboardコンポーネント(データアップロード用、ggplotly用の4 + 4)があります。コンポーネント#1でファイルのアップロードを設定した場合、私はそれを反応的に呼び出すことができるようです。 (上のファイルアップロードの例から)
server <- function(input, output) {
output$contents <- renderTable({
req(input$file1)
df <- read.csv(input$file1$datapath,
header = input$header,
sep = input$sep,
quote = input$quote)
return(head(df))
})
}
これは、RMarkdownの独自のコンポーネント/コードチャンク内で動作します。ユーザーが.csvファイルをアップロードすると、最初の5行が表示されます。
しかし、アップロードされたデータは、他のコンポーネントから呼び出すことができません。それは、独自のコンポーネントにShinyモジュールとして組み込まれているからです。アップロードされたデータをオブジェクトに割り当ててから反応的に呼び出すことを試みました(たとえばselectedData()
)が、コンポーネントをグレーアウトします。また、observeEvent
を無効に設定してみました。私は明らかな何かを見逃すはずです。 ggplotlyの例では、データはグローバルなチャンクに保存されます。これは私のニーズに役立ちますが、パッケージ/ライブラリからデータを取得するだけで動作するようです。
tl; dr他のflexdashboardコンポーネントからユーザーがアップロードしたデータを呼び出すには、どのような方法が最適ですか?