我正在使用Flexdashboard在仪表板上工作,并希望展示使用串扰过滤在一起的地图和数据表。我已经可以使用标准或圆形标记来执行此操作,但是在使用群集时似乎不起作用。
我发现此问题是在Github from 2017 which links to a full example in RPubs上提出的,但是找不到解决方案。这是该示例中的代码:
library(crosstalk)
library(leaflet)
library(DT)
# Wrap data frame in SharedData
sd <- SharedData$new(quakes[sample(nrow(quakes), 10),])
bscols(
# Create a filter input
filter_slider("mag", "Magnitude", sd, column=~mag, step=0.1, width=250),
leaflet(sd) %>% addTiles() %>% addMarkers( clusterOptions = markerClusterOptions()),
datatable(sd, extensions="Scroller", style="bootstrap", class="compact", width="100%",
options=list(deferRender=TRUE, scrollY=300, scroller=TRUE))
)
问题在于,表中的行数随着幅度范围的缩小而减少,而簇不会改变。只需使用标准标记代替聚类就可以工作(同样取自Matthias Hinz的RPubs示例):
# Use SharedData like a dataframe with Crosstalk-enabled widgets
bscols(
# Create a filter input
filter_slider("mag", "Magnitude", sd, column=~mag, step=0.1, width=250),
leaflet(sd) %>% addTiles() %>% addMarkers(),
datatable(sd, extensions="Scroller", style="bootstrap", class="compact", width="100%",
options=list(deferRender=TRUE, scrollY=300, scroller=TRUE))
)
我希望集群随着数据过滤而更新。这可以通过创建新集群或更改现有集群上显示的数量来实现。
我希望这是一个独立的html文档,可以脱机共享而不是托管,因此据我了解,我将无法使用Shiny。