我最近问了一个关于 Shiny 反应性问题的问题,由于收到的评论,我修改了我的代码,但我仍然无法让它工作。正如我之前提到的,我知道如果没有反应性,情节就会起作用,所以这绝对是一个反应性问题。
在我的 UI 中,我有一个 selectInput,其中包含选项 A、B、C、D。(对应于 4 个数据框 A、B、C、D)。
在我的服务器中:
colors <- c("red", "blue", "green", "purple")
data <- reactive({
if(input$selectInput == "A"){
A
} else if(input$selectInput == "B") {
B
} else if(input$selectInput == "C") {
C
} else if(input$selectInput == "D") {
D
}
data <- na.omit(as.data.frame(data$cover_group))
names(data) <- c("tmp")
})
group_factor <- reactive({
group_factor <- as.factor(data()$tmp)
group_factor <- fct_recode(group_factor, OTHER = "E", OTHER = "SPONGES", OTHER = "F", OTHER = "G", OTHER = "H", OTHER = "I", OTHER = "J")
})
bar <- reactive({
ggplot(data = data()) +
geom_bar(mapping = aes(x = group_factor(), y = ..count../sum(..count..)), fill = colors) + xlab("Cover Group") + ylab("Percent")
})
observe({
output$coverTypeBarChart <- renderPlot(bar())
})