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

问题描述 投票:0回答:1

我正在使用基于 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)
r shiny r-leaflet
1个回答
0
投票

renderDataTable
不适用于
tableOutput
。您必须使用
dataTableOutput
来代替。此外,您应该为
inputId
添加正确的
dataTableOutput

要让一切正常工作,请将

tableOutput(as.data.frame(sample_test1))
中的
ui
更改为
dataTableOutput('table')

© www.soinside.com 2019 - 2024. All rights reserved.