如何在Shiny中的renderTable中包装文本

时间:2014-10-21 20:41:52

标签: r shiny

在我的代码中,有一点:

   output$summaryTable <- renderTable({
      createData()$summary
    },align='lll')

但是,createData()$summary[2,1]createData()$summary[2,2]都非常长,因此表格具有非常宽的滚动条。修复它的最佳方法是什么呢?

谢谢!

2 个答案:

答案 0 :(得分:1)

我无法复制你的表,但似乎你必须添加一些css来按照你想要的方式格式化表。

您可能需要添加以下内容:

tags$head(
  tags$style(
    HTML("#summaryTable table tr td {word-wrap: break-word}")
  )
)

如果我可以复制你的表,我可以测试我答案的有效性。

答案 1 :(得分:0)

如果您的问题仍然有效,以下是您的问题的一个解决方案:

output$summaryTable <- DT::renderDataTable({
        datatable(createData()$summary,
options = list(columnDefs = list(list(targets = 1,render = JS("function(data, type, row, meta) {","return type === 'display' && data.length > 10 ?","'<span title=\"' + data + '\">' + data.substr(0, 8) + '...</span>' : data;","}")))))})

如果行有10个以上的字符(data.length > 10),则dataTable将只显示8个(data.substr(0, 8)):

rowwithlongname - &gt; rowwithl ......

当鼠标悬停在该行上时,将显示全名