gpt4 book ai didi

r - Shiny 的实时 url 数据不更新

转载 作者:行者123 更新时间:2023-12-04 16:00:07 33 4
gpt4 key购买 nike

我正在将来自两个 url 的实时数据读入 Shiny 并显示最近更新的 8 条记录。然而,Shiny 中的数据并不是最新的,

即显示前几天的记录,与来自url的实时记录不一致,

除非我再次在浏览器中粘贴并打开/刷新网址。我想知道这是否是缓存的问题,我应该如何更改我的代码?

library(shiny)
shinyApp(
ui <- fluidPage(
column(3,
selectInput("station", "Select station",
c("a", "b")),
tableOutput("table")
)
),


server <- function(input, output) {
df <- eventReactive(input$station, {
if (input$station == "a") {
tail(read.csv("https://datagarrison.com/users/300234062103550/300234062107550/temp/Dawson_Creek__008.txt",
sep = "\t", skip = 2)[, c("Date_Time", "Rain_2440445_mm")], 8)


} else {
tail(read.csv("http://datagarrison.com/users/300234062103550/300234064336030/temp/10839071_004.txt",
sep = "\t", skip = 2)[, c("Date_Time", "Rain_2007476_mm")], 8)
}})
output$table <- renderTable(
df()
)
})

更新:
结果证明是服务器本身而不是代码遇到更新问题。但是,答案显示了一种有用的方法。

最佳答案

http://shiny.rstudio.com/gallery/timer.html ,使用它我们可以继续每秒刷新 Shiny ,从而跟上任何更新。注意我会清除您的工作 session 以确保您没有读取任何隐藏的变量。

  server <- function(input, output,session) {

....

output$table <- renderTable({
invalidateLater(1000, session)
df()
})

}

请注意 output$table<- renderTable需要一个 ({不仅仅是 (要被认为是 react 性的,您当前的代码可能会向您显示以前创建的表。

这是您使用操作按钮强制刷新的代码(注意:替换 URL)
library(shiny)
shinyApp(
ui <- fluidPage(
column(3,
selectInput("station", "Select station",
c("a", "b")),
tableOutput("table"),
#add action button
actionButton("button","Refresh")
)
),


server <- function(input, output) {
#trigger rest of code based on button being pressed.
observeEvent(input$button,{

if (input$station == "a") {
df<-tail(read.csv("URL",sep = "\t", skip = 2)[, c("Date_Time",
"Rain_2440445_mm")], 8)

} else {
df<-tail(read.csv("URL",sep = "\t", skip = 2)[, c("Date_Time",
"Rain_2007476_mm")], 8)

}#close if/else()



output$table <- renderTable({
df
}) # close renderTable()

})#close observeEvent()
} #close server
) #close shiny app

关于r - Shiny 的实时 url 数据不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50747052/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com