Ich habe Probleme mit der Reaktivität in Shiny. In meiner UI habe ichR selectInput Reaktivitätsprobleme
library(tidyverse)
library(shiny)
library(forcats)
ui <- fluidPage(
titlePanel(h1("Percent Cover")),
selectInput("selectInput", "Select Site", choices = c("A", "B", "C", "D")),
plotOutput("coverTypeBarChart", height = "600px")
)
Diese entsprechen den Datenrahmen A, B, C, D, die ich an der Spitze des Servers eingelesen.
In meinem Server, ich habe:
colors <- c("red", "blue", "green", "purple")
reactive({
if (input$selectInput == "A")
{data <- A}
else if (input$selectInput == "B")
{data <- B}
else if (input$selectInput == "C")
{data <- C}
else if (input$selectInput == "D")
{data <- D}
})
data() <- na.omit(as.data.frame(data()$cover_group))
names(data()) <- c("tmp")
cover_group_factor <- as.factor(data()$tmp)
cover_group_factor <- fct_recode(cover_group_factor, OTHER = "E", OTHER = "F", OTHER = "G", OTHER = "H", OTHER = "I", OTHER = "J", OTHER = "K")
bar <- ggplot(data = data()) +
geom_bar(mapping = aes(x = cover_group_factor, y = ..count../sum(..count..)), fill = colors) + xlab("Cover Group") + ylab("Percent")
observe({
output$coverTypeBarChart <- renderPlot(bar)
})
}
Ich weiß, wenn ich manuell Daten zu einem des Wert zuweisen und manuell den Code ausführen, ich die Handlung produzieren kann, so dass ich weiß, dass es ein Reaktivität Problem .
Danke.
Ich kann nicht zu viel sagen, da ich keine Beispiele für die Datenrahmen habe. Aus dem, was ich sehe, kann ich jedoch nicht erkennen, dass Sie etwas an Ihre reaktive Funktion angehängt haben. Könnte es sein, dass du Folgendes sagen musst? 'Daten <- reaktiv ({ if (Eingang $ selectInput == "A") {data <- A} else if (Eingang $ selectInput == "B") {data <- B} sonst if (Eingabe $ selectInput == "C") {Daten <- C} sonst if (Eingabe $ selectInput == "D") {Daten <- D} }) ' – p0bs