我正在使用httr和jsonlite查询API。整理这些数据,然后进行一些计算。然后使用Shiny应用程序呈现数据。除了必须停止Shiny应用程序以便查询API以获取新数据之外,所有功能都运行良好。有没有一种方法可以查询API并执行上述计算,而不必停止Shiny?我的目标是每5分钟查询一次API,并通过Shiny显示最新的数据。我很抱歉,如果这是一个基本的问题,但我是相对新的光泽。
bbuxkriu1#
“...我不认为这将执行查询API的R脚本中的代码...":您弄错了。您没有提供API或计算的详细信息,因此我仅通过生成一个随机的tibble来模拟对API的调用。另外,为了保存您等待五分钟查看数据变化的时间,我每两秒查询一次“API”。
library(shiny) library(tidyverse) queryAPI <- function() { tibble(X = rnorm(5), Y = rnorm(5)) } ui <- fluidPage( tableOutput("table"), plotOutput("plot") ) server <- function(input, output, session) { apiData <- reactive({ invalidateLater(2000) queryAPI() }) output$table <- renderTable({ apiData() }) output$plot <- renderPlot({ apiData() %>% ggplot() + geom_point(aes(x = X, y = Y)) }) } shinyApp(ui, server)
1条答案
按热度按时间bbuxkriu1#
“...我不认为这将执行查询API的R脚本中的代码...":您弄错了。
您没有提供API或计算的详细信息,因此我仅通过生成一个随机的tibble来模拟对API的调用。另外,为了保存您等待五分钟查看数据变化的时间,我每两秒查询一次“API”。