首页 > 解决方案 > R Shiny:如何使用 renderTable 显示空间数据框

问题描述

我正在使用基于 PostgreSQL 空间数据库的 Leaflet 地图构建一个闪亮的应用程序。

我成功地将空间数据导入 SpatialPolygonDataFrame 并将其显示在 Leaflet 小部件上。

我正在尝试使用 RenderTable 输出显示来自 SpatialDataFrame 的数据,但它无法正常工作,即使使用 as.data.frame(spatialdataframe) 进行转换也是如此。因此这种转换足以显示带有 view()、kable() 或其他显示函数的表格,但在 Shiny 中则不行。

我应该进行另一次转换吗?有人有想法吗?

    ui <- fluidPage(
titlePanel("AgriPAG"),
sidebarLayout(
    mainPanel(
        tabsetPanel(
            tabPanel(leafletOutput("m",width = "100%", height = 1000)),
            tabPanel(tableOutput(as.data.frame(sample_test1)))
        )
    ),
    sidebarPanel("curseur")
)
)

server <- function(input,output, session){

data <- reactive({
x <- test1
})

output$mymap <- renderLeaflet({
test1 <- data()

m <- leaflet(data = sample_test1) %>%
        addTiles() %>%
        setView(lng=-52.3333300, lat=4.9333300 , zoom=10) %>%
        addPolygons(data=sample_test1, weight=2, col="black", opacity=0.5)
m
})

output$table <- renderDataTable(as.data.frame(sample_test1))

}

shinyApp(ui = ui, server = server)

标签: rshinyleaflet

解决方案


renderDataTable不适用于tableOutput. 你必须dataTableOutput改用。此外,您应该添加正确inputId的 for dataTableOutput

让一切正常工作改变:tableOutput(as.data.frame(sample_test1))在你uidataTableOutput('table')


推荐阅读