Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
闪亮的实时url数据不会更新_R_Url_Caching_Shiny_Reactive - Fatal编程技术网

闪亮的实时url数据不会更新

闪亮的实时url数据不会更新,r,url,caching,shiny,reactive,R,Url,Caching,Shiny,Reactive,我正在将两个URL中的实时数据读取到Shiny中,并显示最近更新的8条记录。然而,数据并不是最新的 i、 e.显示前几天的记录,与url中的实时记录不一致 除非我再次粘贴并打开/刷新浏览器中的url。我想知道这是否是缓存的问题,我应该如何修改我的代码 library(shiny) shinyApp( ui <- fluidPage( column(3, selectInput("station", "Select station", c(

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

i、 e.显示前几天的记录,与url中的实时记录不一致

除非我再次粘贴并打开/刷新浏览器中的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()
  )
})
库(闪亮)
shinyApp(
ui请参见,使用此选项,我们可以继续每秒刷新shiny,因此可以随时更新。注意,我会清除您的工作会话,以确保您没有读取任何隐藏变量

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

  ....

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

 }

当您更改输入选项时,代码是否会更新?假设a已过时,如果您将输入切换到b,是否会显示更新的表?@Chabo我尝试过,新单击时不会显示更新的表(表a或b)。你能添加一个按钮吗?强制更新最简单。我将探索该选项。这是一个操作按钮吗?我已更新了我的答案以显示该方法
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