私はこれとこのスレッドと他のいくつかを見てきましたが、私の解決策を理解することができませんでした.
R と Shiny を使用してダッシュボードを作成しました。ダッシュボードはRPostgreSQL
パッケージを使用して Postgres db からデータを取得します。現在、すべてのデータのプルと分析のコードはshinyServer
関数の外部で行われ、表示部分 (output
およびrender
関数) のみがそのshinyServer
部分にあります。ダッシュボードのデータが定期的に更新され、グラフが更新されるように設定したいと思います。私はそれらを調べてreactivePoll
理解invalidateLater
しましたが、コードに実装する方法がわかりません。
server.R
簡単なコード例を次に示します。
library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host='host', port='12345', dbname='mydb',
user='me', password='mypass')
myQuery <- "select * from table"
myTable <- dbGetQuery(con, myQuery)
foo <- nrow(myTable)
bar <- foo * 2
shinyServer(
function(input, output, session) {
output$foo <- renderText(foo)
output$bar <- renderText(bar)
session$onSessionEnded(function(){
dbDisconnect(con)
dbDisconnect(con2)
dbUnloadDriver(drv)
})
}
)
foo
定期的に更新したい場合は、dbGetQuery
コマンドも更新する必要があり、それらをすべて連携させる方法がわかりません。再フォーマットしてすべてをshinyServer
関数内に配置する必要がありますか? 私は約 250 行のコードを持っていますが、それらすべてをそこに入れるのは間違っているように感じます。そこにデータ プル パーツを入れるだけで、順序が乱れる可能性があります。どんな助けでも大歓迎です。