Я хочу создать приложение визуализации в Shiny, которое будет строить графики на основе данных, полученных из Census API (ACS 1 год). Чтобы расширить параметры переменных, доступные пользователям, я хочу, чтобы вызов API корректировался на основе ввода данных пользователем. Ниже я вставил базовый пример кода, предназначенный для печати результатов вызова API tidycensus в виде таблицы в блестящем приложении. Пользователь должен иметь возможность ввести новое имя таблицы и увидеть обновленные результаты, однако, когда вводится новое имя таблицы, таблица данных не обновляется, и кажется, что вызов API выполняется постоянно. Это несмотря на то, что значение по умолчанию, предоставленное для вызова API, работает должным образом.
Обратите внимание, что вызову API переписи для возврата данных требуются заметные секунды.
library(tidycensus); library(shiny)
# assumption that a census api key is already installed on your system
ui <- fluidPage(
textInput("table.name",
label = "Enter table name here:",
value = "B08006"),
tableOutput("acs")
)
server <- function(input, output) {
ACSdata <- reactive({
acs <- as.data.frame(get_acs(geography = "place",
table = as.character(input$table.name),
survey = "acs1",
year = 2016,
state = "PA"))
})
output$acs <- renderTable({
ACSdata()
})
}
shinyApp(ui, server)
Новое имя таблицы, чтобы попробовать: B05013
Ниже представлено изображение консоли результатов. Видны первые три строки, начинающиеся со слов «с использованием кода FIPS» - за ними следует таблица, всплывающая в приложении, а после того, как я изменяю имя таблицы, те же строки повторяются бесконечно.