Является ли filter
маскированной функцией для вас? Вы можете попробовать использовать квалифицированный вызов функции для filter
через dplyr::filter()
.
Кроме этого, как указал другой пользователь, input$daterange
- это вектор с 2 значениями - "начало" (input$daterange[1]
) и «конец» (input$daterange[2]
). Вы упомянули, что пытались изменить input$daterange[1]
или [2]
, но это не работает: я полагаю, это означает, что вы изменили свой вызов на plot(input$daterange)
в server
, верно? Вы должны изменить и указать это в своем объявлении этой функции. Поскольку вы определяете дату из input$daterange
на основе уже min(df$date)
и max(df$date)
, вы можете просто использовать days[1]
и days[2]
для ссылки на min
и max
пользовательского ввода. Может быть, так?
plot1 <- function(days) {
df %>% dplyr::filter(between(date, days[1], days[2])) %>%
ggplot(aes(x = date, y = number)) +
geom_line() +
theme_classic()
}
Наконец, у меня возникли некоторые проблемы с отображением графиков из ggplot
в shiny
приложениях. Для того, чтобы показать график, я сохраняю переменную, а затем подробно показываю график с print()
. Пример:
myPlot <- ggplot(df, aes(x=..., y=...)) + geoms_...
print(myPlot)
Если я просто позвоню ggplot
без print()
после, это не всегда будет работать так, как задумано.