Shiny 中数据集的预定更新
Scheduled Updates for Dataset in Shiny
我正在制作一个仪表板,其中有多个图表来自一个数据集,我想在设定的时间后刷新该数据。这是我现在拥有的,但不起作用:
## server.R ##
library(shiny)
shinyServer(function(input, output) {
sourceData <- observe({
invalidateLater(15000,NULL)
runif(100, 0, 100)
})
output$reactiveHist <- renderPlot({
hist(sourceData)
})
})
这看起来很简单,在 15000 毫秒之后,观察者应该 运行 再次创建一个新的数据集。但是,它会生成此错误:
Error in hist.default(sourceData) : 'x' must be numeric
有什么想法吗?
找到这个 post:Call Variable from reactive data() in R Shiny App
这是工作代码:
library(shiny)
data <- reactive({
invalidateLater(5000,NULL)
list(unif = runif(100, 0, 100), norm = rnorm(100, 0, 100))
})
shinyServer(function(input, output) {
output$reactiveHist <- renderText({
paste(data()$unif)
})
})
您应该考虑使用 reactiveFileReader()
函数。它基本上读取数据源并使其响应。您可以指定一个以毫秒为单位的时间间隔,应用程序将在该时间间隔检查源并在它发生变化时重新上传。还可以指定源码的路径和读入源码的函数,这样可以读入的源码种类繁多。
我正在制作一个仪表板,其中有多个图表来自一个数据集,我想在设定的时间后刷新该数据。这是我现在拥有的,但不起作用:
## server.R ##
library(shiny)
shinyServer(function(input, output) {
sourceData <- observe({
invalidateLater(15000,NULL)
runif(100, 0, 100)
})
output$reactiveHist <- renderPlot({
hist(sourceData)
})
})
这看起来很简单,在 15000 毫秒之后,观察者应该 运行 再次创建一个新的数据集。但是,它会生成此错误:
Error in hist.default(sourceData) : 'x' must be numeric
有什么想法吗?
找到这个 post:Call Variable from reactive data() in R Shiny App
这是工作代码:
library(shiny)
data <- reactive({
invalidateLater(5000,NULL)
list(unif = runif(100, 0, 100), norm = rnorm(100, 0, 100))
})
shinyServer(function(input, output) {
output$reactiveHist <- renderText({
paste(data()$unif)
})
})
您应该考虑使用 reactiveFileReader()
函数。它基本上读取数据源并使其响应。您可以指定一个以毫秒为单位的时间间隔,应用程序将在该时间间隔检查源并在它发生变化时重新上传。还可以指定源码的路径和读入源码的函数,这样可以读入的源码种类繁多。