Я могу успешно сослаться на вход пользовательского интерфейса input$dateRange1[1]
, чтобы настроить текст заголовка ggplot, но я не могу использовать тот же объект ввода для запроса данных, используя функцию readNWISdv()
из dataRetrieval. Я не уверен, что это проблема Shiny или ggplot.
Моя попытка использовать реактивное выражение дает ошибку ниже. Подобные вопросы по stackoverflow не помогли в решении этой проблемы. Заранее спасибо.
Предупреждение. Ошибка в: data
должен быть фреймом данных или другим объектом, который может быть fortify()
, а не объектом S3 с классом реактивнымExpr / реактивным [Нет трассировки стекадоступно]
Мой код-
## LIBRARY PACKAGES #####################
library(shiny)
library(dataRetrieval)
library(ggplot2)
rm(list = ls())
## USER INTERFACE #####################
if (interactive()){
ui <- fluidPage(
sidebarPanel(
dateRangeInput("dateRange1", "Date Range Plot1 (yyyy-mm-dd):",
start = "2012-01-01",
end = "2018-02-30"),
plotOutput(outputId = "flow"))
)
## SERVER #############################
server <- function(input, output, session){
ReData <- reactive({
dailyData <- readNWISdv(siteNumbers = c('09106150'),
parameterCd = "00060", # 00060 = stream flow in CFS
startDate = input$dateRange1[1], endDate = "2019-01-01") #issue line
# Clean up data to have human-readable names of parameters + move data into long format
dailyData <- renameNWISColumns(dailyData); head(dailyData)
dailyData <- select(dailyData, -ends_with("_cd")); head(dailyData)
})
output$flow <- renderPlot({
ggplot(data = ReData, aes(x = Date, y = Flow)) +
ggtitle(as.character(input$dateRange1[1]))+
geom_line(aes(color = site_no)) +
theme_bw()
})
}
shinyApp(ui = ui, server = server)
}