【发布时间】:2018-11-17 17:06:13
【问题描述】:
我正在将来自两个 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()
)
})
更新: 原来是服务器本身遇到了更新问题,而不是代码。但是,答案显示了一种有用的方法。
【问题讨论】:
-
当您更改输入选项时,代码是否会更新?假设 a 已过时,如果将输入切换为 b,是否会显示更新的表格?
-
@Chabo 我试过了,更新后的表格不会在新点击时显示(表格 a 或 b)。
-
可以加个按钮吗?这很容易强制更新发生。
-
我将探索该选项。那会是一个操作按钮吗?
-
我已经更新了我的答案以展示这种方法
标签: r url caching shiny reactive