gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:39:07 27 4
gpt4 key购买 nike

我在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com