У меня есть набор данных о бронировании отелей, который состоит из «book_date», «check_in», «check_out» и «доход». Я хотел бы нарисовать 2 диаграммы - «доход по дате бронирования» против «доход по дате заезда»; который я мог бы выделить / увеличить в конкретном периоде бронирования (говорит, январь 2018 г.), чтобы понять доход за соответствующий период регистрации (например, февраль - апрель 2018 г.).
Я пытаюсь достичь этого, включив Shiny "bru sh "в R Flexdashboard. Идея состоит в том, что, когда в «доходе на дату бронирования» ничего не указано «bru sh», «доход на дату регистрации» будет отображать диаграмму по умолчанию (т.е. доход для всех дат регистрации). Если пользователь увеличивает период «выручка по дате бронирования», «выручка по дате заезда» отреагирует соответствующим образом. Однако отображение по умолчанию для «выручки на дату регистрации» не работает должным образом.
Ниже приведены мои коды:
library(flexdashboard)
library(shiny)
library(tidyverse)
library(lubridate)
library(timetk)
library(scales)
library(plotly)
- доход на дату бронирования
shiny::plotOutput(outputId = "revenue_book", brush = brushOpts(id = "brush", direction = "x"))
output$revenue_book <- shiny::renderPlot(
df %>% filter(book_year == 2018) %>%
group_by(book_date) %>%
summarise(revenue = sum(price)) %>%
ungroup() %>%
ggplot(aes(book_date, revenue)) + geom_line() + geom_point(color = "red") + theme_bw()
)
доход к дате заезда
shiny::plotOutput(outputId = "revenue_ci")
output$revenue_ci <- shiny::renderPlot({
if (is.null(input$brush)) {
p <- df %>% filter(book_date == 2018) %>%
group_by(check_in) %>% summarise(revenue = sum(price))
%>% ungroup()
# default chart if no "brushing" on "booking revenue chart"
` p %>% ggplot(aes(check_in, revenue)) + geom_line() +` `geom_point(color = "blue") + theme_bw()}`
else {
q <- df %>% filter(book_date >= input$brush$xmin & book_date <= input$brush$xmax) %>%
group_by(check_in) %>% summarise(revenue = sum(price)) %>%
ungroup()
`q %>% ggplot(aes(check_in, revenue)) + geom_line() +` `geom_point(color = "blue") + theme_bw()}})`
Таблицы без чистки
Charts with Brushing
введите описание изображения здесь
Оцените ваш совет по поводу того, что пошло не так, поскольку я новичок в R Shiny и Flexdashboard.