Je voudrais afficher un dygraph brillant de base dans mon Rmarkdown qui permute entre les réseaux. Voici un échantillon des données:Filtrage des objets xts dans les applications Shiny
> head(df)
nightTrips dayTrips network
2014-05-03 0 16 1
2014-05-04 0 5 1
2014-05-05 0 8 1
2014-05-06 0 3 1
2014-05-07 0 0 1
2014-05-08 0 3 1
> nrow(df)
[1] 2239
Si je sous-ensemble de la trame de données df
où network=1
, je peux rendre avec succès un dygraph pour un seul réseau avec:
> head(test)
nightTrips dayTrips
2014-05-03 0 16
2014-05-04 0 5
2014-05-05 0 8
2014-05-06 0 3
2014-05-07 0 0
2014-05-08 0 3
dygraph(test, main = "Network1") %>%
dySeries("nightTrips", label = "Night Trips") %>%
dySeries("dayTrips", label = "dayTrips") %>%
dyOptions(stackedGraph = FALSE) %>%
dyRangeSelector(height = 20)
Mais quand je lie mes données dans un dataframe, ajouter une colonne supplémentaire netowrk
qui spécifie le réseau, le convertir en un objet xts, et essayer de démarrer un serveur brillant - J'obtiens une erreur qu'un filtre ne peut pas être appliqué à l'objet xts:
Existe-t-il une solution de contournement connue pour ce problème? Voici le code de la ligne app Shiny:
```{r, echo = FALSE}
shinyApp(
ui = fluidPage(
titlePanel("Sample Timeseries"),
sidebarLayout(
sidebarPanel(
uiOutput("networknames")
),
mainPanel(
dygraphOutput("networksgraph"))
)
),
server = function(input, output) {
data <- df
data <- as_xts(data, date_col = day)
output$networksgraph <- renderDygraph({
if (is.null(input$networkname)) return (NULL)
filtered <- filter(data,
network == intput$networkname) %>%
dygraph()
})
output$networknames <- renderUI({
selectInput("networkname", "Select your Network",
choices = c(1,2,3))
})
}
)
```
Pourquoi convertir l'intégralité de la trame de données en xts? Il semble que 'data $ network' devrait continuer à être numérique. –