Shiny 创建文本换行并使用数据表管理列宽

Shiny 创建文本换行并使用数据表管理列宽,shiny,datatables,dt,Shiny,Datatables,Dt,我有一个数据表,有很多书面文本。我想以一种易于阅读的方式来组织这篇文章。我尝试了一些想法,但似乎不起作用。我也愿意听取关于如何组织数据表的任何建议 这是我的代码,我试图控制列的宽度。现在的宽度是非常广泛的,我想缩小选定的列相当多 output$newsfeed = renderDataTable({ datatable(df, rownames = F, extensions = "Scroller", options = list(deferRen

我有一个数据表,有很多书面文本。我想以一种易于阅读的方式来组织这篇文章。我尝试了一些想法,但似乎不起作用。我也愿意听取关于如何组织数据表的任何建议

这是我的代码,我试图控制列的宽度。现在的宽度是非常广泛的,我想缩小选定的列相当多

output$newsfeed = renderDataTable({
  datatable(df, rownames = F, extensions = "Scroller", 
          options = list(deferRender = TRUE,
                         scrollY = 400,
                         scrollX = TRUE,
                         scroller = TRUE,
                         autoWidth = TRUE,
                         columnDefs = list(list(width = '50px', targets = list(1,2,3,4,5)))
                                                                       
  ))
})


谢谢您的帮助。

尝试使用
width='10%'
作为感兴趣的列

library(DT)
library(shiny)

dat <- data.frame(
  V1 = c("A", "B"),
  V2 = c(
    "A cool guy living in US and Canada", 
    "A cool guy living in New York"
  ),
  V3 = c(
    "A cool guy living in US and Canada", 
    "A cool guy living in New Jersey"
  ),
  V4 = c(
    "A cool guy living in US and Canada", 
    "A cool guy living in California"
  ),
  V5 = c(
    "A cool guy living in the US and else where", 
    "A cool guy living in Texas"
  ),
  stringsAsFactors = FALSE
)

ui <- fluidPage(
  DTOutput("table")
)

server <- function(input, output){
  
  output[["table"]] <- renderDT({
    datatable(dat, options = list(
      deferRender = TRUE,
      scrollY = 400,
      scrollX = TRUE,
      scroller = TRUE,
      autoWidth = TRUE,
      columnDefs = list(list(width = '10%', targets = c(2,3,4)))
    ))  # %>% formatStyle(columns = c(2,3), width='20px')
  })
}

shinyApp(ui, server)
库(DT)
图书馆(闪亮)
dat我猜“extensions=”Scroller“与控制列宽冲突。

当我在YBS的代码中添加“extensions=”Scroller“时,文本不会被包装。

出于某种原因,这在我闪亮的应用程序之外对我有效。然而,在我闪亮的应用程序中,它不起作用。我使用的是bsDash4而不是shinydashboard。您认为这可能是原因吗?在这种情况下,请尝试选择
sScrollXInner=“80%”
。它将减少所有列的宽度。尝试不同的百分比,找出哪一个适合您的需要。@YBS当文本是由您创建的空格分隔时,它会起作用。但是,如果列中的长文本仅由逗号分隔,没有任何空格,则此操作无效。我现在有一个类似的需求,该列的文本由逗号分隔,它的工作方式与示例中的不同。你能帮忙吗?@chas,请把它作为一个新问题发布,然后有人可以帮你。