Ich möchte ein reaktives Dataset in meiner glänzenden App verwenden, sodass alle anderen Objekte, die dieses Dataset verwenden, gemäß den Werten in reactiveDf
erneut gerendert werden können.Wie wird ein Datensatz in Shiny reaktiv gemacht?
In diesem Beispiel gebe ich nur eine Tabelle aus, aber in meiner App habe ich andere Diagramme und Tabellen, und die Idee ist, das Rendering nur durch Unterteilung reactiveDf
auszulösen. Auch das würde ich gerne mit dplyr
machen.
library(shiny)
library(dplyr)
ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
checkboxGroupInput('Category', '',
unique(mtcars$carb), selected = unique(mtcars$carb))),
# Show table of the rendered dataset
mainPanel(
tableOutput("df")
)
)
))
server <- shinyServer(function(input, output) {
reactiveDf <- reactive({tbl_df(mtcars) %>%
filter(carb %in% input$Category)})
output$df <- renderTable({reactiveDf})
})
shinyApp(ui = ui, server = server)
Gerade jetzt, wenn ich diese App laufen bekomme ich:
Listening on http://127.0.0.1:7032
Warning: Error in UseMethod: no applicable method for 'xtable'
applied to an object of class "reactive"
Und tableOutput()
wird nicht angezeigt.
@cory Wenn ich 'str (tbl_df (mtcars))' I 'Klassen 'tbl_df' bekommen, 'Tabl' und "Datenrahmen". Meinst du, dass das Objekt _exclusively_ ein Dataframe sein sollte? Ich benutze auch ggvis in meiner ursprünglichen App, und so habe ich versucht, mit dplyr für die Untergruppe zu bleiben. – Dambo