以闪亮的方式显示数据表
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与我当前的选项列表一起使用)
非常感谢您的帮助!
此致
托马斯
答案 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个字符,并在末尾添加一个...。