Все еще очень плохо знаком с R или любым программированием, представляя некоторые данные о состоянии здоровья в отделе и подумав, что я попытаюсь написать что-то, что позволит мне выбрать, какое подмножество данных отображать. Сделал некоторое самостоятельное чтение и попробовал следующее (пожалуйста, см. Ниже).
Проблема, с которой я столкнулся, состоит в том, что, когда я выбираю все 4 «Хирургических подхода», я получаю не те результаты, которые ожидаю. Например, среднее значение LOS для июля 2019 года должно быть ниже, чем то, что я вижу здесь.
Как я уже сказал, очень плохо знаком с этим, пожалуйста, предположите, что я ничего не знаю, отвечая на этот вопрос.
# User Interface
ui <-basicPage(
sliderInput("year", "Select Year:", animate = T,
min = 2016, max = 2019, value = 2016, sep = ""),
checkboxGroupInput("approach", "Surgical Approach", c("Laparoscopic", "Lap-assisted", "Converted to open", "Open"),
selected = c("Laparoscopic", "Lap-assisted", "Converted to open", "Open")),
plotOutput(outputId = "LOS_plot"),
plotOutput(outputId = "All3_plot")
)
# Server
server <- function(input, output){
output$LOS_plot <- renderPlot({
ERAS %>% filter(Sx_Approach == input$approach) %>%
arrange(year_m) %>%
mutate(DoSdate = ymd(year_m), yearDoS = year(DoSdate), monthDoS = month(DoSdate)) %>%
filter(yearDoS == input$year) %>%
group_by(year_m) %>% mutate(mean_LOS = mean(Postop_LOS)) %>%
ggplot(aes(x = monthDoS, y = mean_LOS)) + geom_line(colour = "black", size = 1.5) +
scale_x_continuous(limits = c(1, 12), breaks = c(1:12)) +
scale_y_continuous(limits = c(0, 30), minor_breaks = 1) +
theme(aspect.ratio = 0.4) + xlab("Month") + ylab("Days") + ggtitle("Mean Length of Stay over Time")
})
output$All3_plot <- renderPlot({
ERAS %>% filter(Sx_Approach == input$approach) %>%
arrange(year_m) %>%
mutate(DoSdate = ymd(year_m), yearDoS = year(DoSdate), monthDoS = month(DoSdate)) %>%
filter(yearDoS == input$year) %>%
group_by(year_m) %>% mutate(mean_All3 = mean(All_3 == T, na.rm = T)) %>%
ggplot(aes(x = monthDoS, y = mean_All3)) + geom_line(colour = "#5391c6", size = 1.5) + scale_x_continuous(limits = c(1, 12), breaks = c(1:12)) +
scale_y_continuous(labels = scales::percent, limits = c(0, 1)) +
theme(aspect.ratio = 0.4) + xlab("Month") + ylab("Percentage") + ggtitle("Patients Achieving All Three ERAS Goals")
})
}