我正在构建一个R闪亮的仪表板,当我使用DT包和renderdatatable()将数据放入表中时.在每列的顶部,我有过滤器,搜索框太窄,无法查看文本并选择一个选项.这是一张图片:
有谁知道增加宽度的方法?
这是我在server.r中的数据表代码的代码:
output$table <- DT::renderDataTable(DT::datatable({
data <- rv$data
if (input$sour != "All") {
data <- data[data[,1] == input$sour,]
}else{data}
if (input$sour1 != "All") {
data <-data[data[,2] == input$sour1,]
}else{data}
if (input$tran != "All") {
data <-data[data[,3] == input$tran,]
}else{data}
},filter='top'))
Run Code Online (Sandbox Code Playgroud)
这是ui.r中的代码:
tabItem(tabName = "ResultsTable",
fluidPage(
headerPanel(
h1("List", align="center", style = "font-family: 'Verdana';font-weight: 800; line-height: 1.1; color: #151515;")),
# fluidRow(
# column(8, DT::dataTableOutput("table",width = "100%"),offset = 2)))),
# # Create a new Row in the UI for selectInputs
fluidRow(
column(4, …
Run Code Online (Sandbox Code Playgroud) 我需要在R Shiny应用程序中设置DataTabe的列宽.我浏览了文档中的 数据表选项.另外,我在Stackoverflow中回顾了这个和这个问题.
如果DataTable没有太多列,则设置宽度可以正常工作.但是,如果存在多个列,则尽管存在绝对宽度单位(例如'600px'
),仍会覆盖设置.
在下面的代码片段中:
output$mytable <- DT::renderDataTable({
num_of_cols <- 3
cbind(iris,iris)[,1:num_of_cols]},
options = list(autoWidth = TRUE,
columnDefs = list(list(width = '500px', targets = 1))))
Run Code Online (Sandbox Code Playgroud)
如果我设置变量num_of_cols = 3
它工作正常.num_of_cols
但是,增加显示的列()会导致列宽减小.如果显示大量列,则宽度设置似乎无效.
我尝试过选项,autoWidth = FALSE
但它没有给出不同的结果.我也尝试在该线程drawCallback
的答案部分中描述的选项中使用JavaScript,但它给出了相同的结果.
如何让DataTable显示所需的列宽设置?
我正在制作一个闪亮的应用程序,并遇到了一个小而刺激性的问题.我生产的部分输出是使用输出DT::renderDataTable
.只有两列,第一列的宽度将取决于输入数据集,所以我不想绝对地将宽度固定为任何东西.我已经看过这个帖子,其中一个答案中的代码在某种程度上起作用.但是,如果我第二次按下actionButton,表会自行调整大小以填充输出窗口的整个宽度.
有没有办法防止表再次按下操作按钮后自行调整大小?我知道,只用renderTable
和tableOutput
会解决这个问题,但我喜欢dataTableOutput
,并希望使用该功能.
对于MWE:
library("shiny")
library("DT")
mwe_ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
titlePanel("Example"),
sliderInput(inputId = "df",
label = "Degrees of Freedom:",
min=1 , max=50 , value=1 , step=1
),
actionButton(inputId = "compute1",
label = "Sample"
)
),
mainPanel(
dataTableOutput( outputId = "summary" )
)
)))
mwe_server <- function(input, output) {
temp01 <- reactive({
compute1 <- input$compute1
if( compute1 > 0 ){
isolate({
aa <- round( runif(6, 4,20 ) )
bb <- character() …
Run Code Online (Sandbox Code Playgroud) 我正在构建一个 Shiny 仪表板,仪表板上的一个面板是 DataTable。
下面是我的代码:
output$table = DT::renderDataTable(b1, selection = 'single')
Run Code Online (Sandbox Code Playgroud)
数据表中的列宽现在根据列名的宽度进行调整。但是,某些单元格值是文本,并且这些文本被压缩以显示在多行中,因为它们比列名称长。
我想知道是否有办法调整列宽以适应一行中的单元格值。
或者,有没有办法为列设置固定宽度并通过悬停来获取单元格值的全部内容?
提前致谢。