在Shiny中向框添加滚动条

8

我使用box()函数在R shiny仪表板页面上实现了一个框,它加载表格并表示一个由人口数字组成的列。然而,数字超出了表格范围,看起来非常糟糕。我希望为框添加滚动条,以便数据保持在框内,并且可以轻松向下滚动。

box( title = "Btest", status = "primary",height = 355, solidHeader = T, 
                              tableOutput("table1"))
2个回答

7

您可以使用库(DT),它为JavaScript库DataTables提供了一个R接口。 R数据对象(矩阵或数据框)可以显示为HTML页面上的表格,而DataTables在表格中提供了过滤,分页,排序等许多功能。

您的代码将如下所示:

ui.r:

box(
title = "View Data", 
width = NULL,
status = "primary", 
solidHeader = TRUE,
collapsible = TRUE,
div(style = 'overflow-x: scroll', DT::dataTableOutput('view_data'))
     )

在 server.r 文件中:
view_data_fun<-eventreactive/reactive/observe/observeevent({

#your table generation code

  })

output$view_data<-DT::renderDataTable({
    DT::datatable(view_data_fun(),rownames = FALSE)%>%formatStyle(columns=colnames(view_selected_data_fun()),background = 'white',color='black')
  })

您可以在 %>%formatstyle 中更改选项。 了解更多信息,请阅读DT信息

1
谢谢Subhasish,现在我能够很好地显示我的数据了。 - AK94
@Subhasish,这个view_selected_data_fun()函数是从哪里来的? - Analytics_TM
@AnalyticsTeam 这是一个自定义函数,用于从长列列表中显示少数列...如果您需要,我可以发布完整的代码... - Subhasish1315

4

只需添加HTML样式选项即可!

 box( title = "Btest", status = "primary",height = 355, solidHeader = T, 
                                  tableOutput("table1"), style = "overflow-x: scroll")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接