R Shiny:如何使用renderTable显示空间数据框

时间:2019-03-21 22:00:08

标签: r shiny leaflet

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

我成功地将空间数据导入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)

1 个答案:

答案 0 :(得分:0)

renderDataTable不适用于tableOutput。您必须改用dataTableOutput。另外,您应该为inputId添加正确的dataTableOutput

要使所有工作正常进行,请执行以下操作:将tableOutput(as.data.frame(sample_test1))中的ui更改为dataTableOutput('table')