闪亮的renderDataTable |如何限制显示的文字大小

时间:2015-02-24 10:47:46

标签: javascript r shiny

以闪亮的方式显示数据表

output$tab1 <- renderDataTable({
expr = tbl
}, options = list(orderClasses = TRUE,
                  lengthMenu = c(3, 5, 10),
                  pageLength = 3)

我想将每个单元格中的文本限制为30个字符。为了方便阅读,是否有选择?

我尝试了DT(http://rstudio.github.io/DT/包的解决方案,参见2.5.4列渲染)但是我没有成功(我想将renderDataTable与我当前的选项列表一起使用)

非常感谢您的帮助!

此致

托马斯

2 个答案:

答案 0 :(得分:0)

不确定您是否还在寻找答案。但是,使用下面的示例包含工具提示非常容易。 您可以在此链接中找到此示例及更多内容 https://rstudio.github.io/DT/options.html

datatable(iris[c(1:20, 51:60, 101:120), ], options = list(columnDefs = list(list(
  targets = 5,
  render = JS(
    "function(data, type, row, meta) {",
    "return type === 'display' && data.length > 6 ?",
    "'<span title=\"' + data + '\">' + data.substr(0, 6) + '...</span>' : data;",
    "}")
))), callback = JS('table.page(3).draw(false);'))

答案 1 :(得分:0)

另一种选择是更改您的列以缩短任何超过30个字符的字符串。

library(dplyr)
library(stringr)

tbl <- tbl %>% mutate(column_name = as.character(column_name)) %>% 
               rowwise() %>% 
               mutate(column_name = case_when(nchar(column_name) > 30 ~
               paste(str_sub(column_name, 1, 30), "..."),
               nchar(column_name) <= 30 ~ column_name))  

这会将所有字符串缩短为30个字符,并在末尾添加一个...。