r - 如何在 R Shiny 中截断 DataTable 中的文本?

标签 r shiny

我在 Rshiny 应用程序中使用 DataTable 来显示 Dataframe 的内容。但是数据框的一个元素是文本,可以包含超过 1000 个字符。当我显示数据表时,它会显示所有文本。我想将它截断为前 250 个字符,悬停时它应该显示全文。我怎样才能做到这一点?

用户界面

shinyUI(fluidPage(
  theme = shinythemes::shinytheme("flatly"),
  titlePanel("title"),
  sidebarLayout(
    sidebarPanel(
      width=0
    ),
    mainPanel(
      width=12,
      tabsetPanel(tabPanel("Data",DT::dataTableOutput("train_data",width = "100%")))
  )
  )
))

服务器.r

output$train_data <- renderDataTable({
 if(is.null(camry_data$train_data)){return ()}
    DT::datatable(camry_data$train_data, options = list(lengthMenu = c(5,10)),class = "display")
  })

最佳答案

我严格按照 4.4 节的列渲染进行了一些调整:https://rstudio.github.io/DT/options.html

此外,targets 参数可以设置为列索引向量,例如c(1,3,5)

output$train_data <- renderDataTable({
 if(is.null(camry_data$train_data)){return ()}
    DT::datatable(camry_data$train_data, options = list(lengthMenu = c(5,10),
    columnDefs = list(list(
      targets = "_all",
      render = JS(
        "function(data, type, row, meta) {",
        "return type === 'display' && data != null && data.length > 30 ?",
        "'<span title=\"' + data + '\">' + data.substr(0, 30) + '...</span>' : data;",
        "}")
      ))),
      class = "display")
})

关于r - 如何在 R Shiny 中截断 DataTable 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49247508/

相关文章:

javascript - 如何在 Shiny 的应用程序加载时触发 JS 脚本

r - 使用 insertUI 方法创建不同的 Shiny 小部件

r - 如何添加可能的除数?

r - 区分R中栅格中的内部和外部NA

r - 使用系统点栅格填充 3D-Body

r - 如何在 Shiny 的应用程序中仅显示五行数据

根据另一列中的条件匹配删除重复行

r - 带有knitr的子图或子标题?

r - 在 Shiny 应用程序中处理图像映射点击

r - Shiny :在导体执行时防止端点中的初始错误消息