オクラホマ - 私は必要なことをする方法を考え出しました。私の最初の問題では、 'renderDataTable'のルックアンドフィールが欲しかったですが、データフレームを取得したい(renderDataTable/dataTableOutputはこれを許可しません。テーブル形式でなければなりません)。これを行うために、私はReportingTools(Bioconductor製)の便利な使い方とその使い方を見つけました。これは、あなたが直接データフレームを使用して、まだなどのソート、検索、ページネーション、とHTMLのテーブルを持つことができます...詳細はここで見つけることができます:
https://bioconductor.org/packages/release/bioc/html/ReportingTools.html
さて、私の第二の問題のために - 更新をデータとテーブルを定期的に再起動する必要はありません。これはシンプルであることが判明しました。シャイニーを初めて知りました。この例を単純にするために、上記のソリューションではなくrenderToolsパッケージを使用して、renderTableを使用しました。この例を単純にしておきたいだけでした。私が最初にしたのは、observer({})内のserver.Rコード(shinyServer()関数内)をすべてラップすることでした。次に、invalidateLater()を使用して、5秒ごとにリフレッシュするように指示しました。ここでは、コードは次のとおりです。
## server.R ##
library(shiny)
library(shinydashboard)
library(DT)
shinyServer(function(input, output, session) {
observe({
invalidateLater(5000,session)
output$PRI1LastPeriodTable <- renderTable({
prioirtyOneIncidentsLastPeriod <- updateILP()
})
})
})
さて、renderTable()部分の元、私はちょうどロードされたのオブジェクトの名前を呼んでいました。Rdataファイルですが、毎回読みたいので、global.Rファイル(これはserver.Rにあった可能性があります)に関数を作成してファイルをロードしました。そのコードはここにあります:
updateILP <- function() {
load(file = "W:/Projects/R/Scripts/ITPOD/itpod/data/prioirtyOneIncidentsLastPeriod.RData", envir = .GlobalEnv)
return(prioirtyOneIncidentsLastPeriod)
}
これは、それ以外はglobal.Rファイルにはありません。しかし、あなたのui.Rは、セットアップ、呼び出しtableOutout、dataTableOutput、またはあなたのレンダリング方法がUI内にあるものです。したがって、5秒ごとにrenderTable()コードが5秒ごとに読み込まれ、実際にファイルを読み取る関数が呼び出されます。私はこれをデータファイルに変更することでテストしました。魅力のように動作します。
これが美しくない、または効率的でない場合は、改善できるかどうか教えてください。これは私がこれを理解できる最も単純な方法でした。ヘルプとコメントの皆様に感謝します!
'load'を使用して' Rdata'ファイルを読み込むと、元のデータフレーム名(保存時と同じ)がワークスペースに読み込まれます。 –
私はそれがワークスペースに読み込まれることを知っています。私はglobal.Rを使ってしまった。なぜなら、もともと私は変数を見ることができなかったからだ。 – azdatasci
と呼ぶときに、単にロードすると、私の最後の入力が途絶えてしまった:「変数< - 」を使って名前に明示的に割り当てなければならない。ワークスペースまた、データフレームをas.data.tableに変換しない限り、「エラー:必要な値がTRUE/FALSEの値がありません」というエラーがスローされます。 renderDataTable/dataTableOutputはテーブルのオブジェクト型のみを読み込みますか?再起動せずに定期的にファイルからこれを更新する方法の例はありますか?私はreactiveFileReaderとreactPollを見てきましたが、これをどのようにまとめていくかはわかりません。 – azdatasci