【问题标题】:How to Truncate text in DataTable in R Shiny?如何在 R Shiny 中截断 DataTable 中的文本?
【发布时间】:2018-03-13 02:45:08
【问题描述】:

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

ui.r

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")
  })

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    我在这里密切关注第 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")
    })
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2019-09-14
      • 2014-05-18
      • 2020-12-15
      • 2021-08-27
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多