Flexdashboard guages

时间:2018-06-11 16:43:54

标签: r shiny dt flexdashboard

此最小可重现性flexdashboard基于官方crosstalk示例之一,并提供了链接的leaflet地图,d3scatterplotDT表格允许用户选择任何格式的数据点,并让其在其他输出中过滤结果。

---
title: 
output:
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
runtime: shiny
---

```{r global, include=FALSE}
library(crosstalk)
library(leaflet)
library(DT)
library(shiny)
library(flexdashboard)
library(d3scatter)

sd <- SharedData$new(quakes[sample(nrow(quakes), 100),])
```

Column {data-width=600}
-------------------------------------

### Geographic Distribution of Sites
```{r}
renderLeaflet({
  leaflet(sd) %>% addTiles() %>% addMarkers()
})
```

### Scatter Distribution of Data Points
```{r}
renderD3scatter({
    d3scatter(sd, ~depth, ~mag, width = "100%", height = 300)
})
```

Column {data-width=400}
-------------------------------------

### Tabular Data  
```{r qtable}
DT::renderDataTable({
    datatable(sd, extensions="Scroller", style="bootstrap", class="compact", width="100%",
    options=list(deferRender=TRUE, scrollY=300, scroller=TRUE))
}, server=FALSE)
```

### Gauges
```{r}
selectedRow <- eventReactive(input$qtable_rows_current,{
      selrow<-sum(sd$mag[c(input$qtable_rows_current)])
    })

renderGauge({
  gauge(
    selectedRow(), min = 0, max = 100, symbol = '%',
    gaugeSectors(success = c(80, 100), warning = c(40, 79), 
                 danger = c(0, 39))
  )
})
```

我想要的是还有一个根据用户选择进行反应性调整的量表; something that is possible using a traditional shiny app通过在input$tableID_rows_current包装器中调用eventReactive(其中tableID是我的DT输出的名称),就像我在上面示例的“Gauges”部分中所做的那样。目前,它设置为显示所选站点的地震震级的总和。

但是,由于flexdashboard具有DT输出的离散代码块,因此没有用于替换tableID的正式名称(因为在服务器函数中没有创建output$tableID就像shiny)中的情况一样。我已经尝试在DT块(qtable)中添加标题并调用它,但未成功。我也尝试将呼叫包括为全局呼叫,但也无效。

我非常喜欢flexdashboard的简洁和外观,但我不确定这项功能是否可行。有没有人知道是否有办法通过调用表名或任何其他方式实现这一目标?

0 个答案:

没有答案