【问题标题】:Filtering xts objects in Shiny apps在 Shiny 应用程序中过滤 xts 对象
【发布时间】:2017-08-28 22:38:22
【问题描述】:

我想在我的 Rmarkdown 中显示一个在网络之间切换的基本 Shiny dygraph。以下是数据示例:

> 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

如果我将数据帧 df 子集到 network=1 中,我可以成功地为单个网络渲染一个 dygraph:

> 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)

但是当我将我的数据绑定到一个数据框时,添加一个额外的列 netowrk 指定网络,将其转换为 xts 对象,并尝试启动一个闪亮的服务器 - 我收到一个过滤器无法应用的错误xts 对象:

是否有针对此问题的已知解决方法? 这是内联 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))
  })
}
)

```

【问题讨论】:

  • 为什么要将整个数据框转成xts? data$network 似乎应该继续是数字。

标签: r shiny xts


【解决方案1】:

dplyr 函数应用于xts 对象的问题已确定,但可能尚未解决。如果您的dygraph() 函数与时间索引无关,那么您可以像filtered &lt;- filter(coredata(data), network == intput$networkname) 一样简单地使用coredata()。在另一种情况下,您必须在xtsdata.frame 之间来回转换。

【讨论】:

    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    相关资源
    最近更新 更多