R语言 使用正则表达式将闪亮数据表中的某个字符串加粗

rggaifut  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(120)

我有一个在ShinyApp的数据表。这个数据表有一列多个字符串。我需要格式化一个字符串模式在这列粗体使用正则表达式。下面的reprex需要粗体字符串“H2”,但我需要一个正则表达式解决方案。我几乎不知道JavaScript,所以任何帮助是非常感谢!

library(shiny)
library(DT)

data <- data.frame(V1 = 1:3, V2 = c("H1, H2, H3", "H5, H2, H6", "H4, H3, H5"))

ui <- fluidPage(
  "How can I make only 'H2' bold??",
  DTOutput("table", width = 500)
)

server <- function(input, output, session) {
  
  output$table <- renderDT(datatable(data))
  
}

shinyApp(ui, server)
omhiaaxx

omhiaaxx1#

一个选项是使用gsub将您希望粗体显示的文本 Package 在HTML b标签中,并在datatable()中设置escape=FALSE

EDIT:按照@DavidJorquera的建议,我通过添加seach模式和标记作为变量对代码进行了一些概括。

library(shiny)
library(DT)

data <- data.frame(V1 = 1:3, V2 = c("H1, H2, H3", "H5, H2, H6", "H4, H3, H5"))

ui <- fluidPage(
  "How can I make only 'H2' bold??",
  DTOutput("table", width = 500)
)

server <- function(input, output, session) {
  
  output$table <- renderDT({
    pattern <- "H2"
    data$V2 <- gsub(pattern, paste0("<b>", pattern, "</b>"), data$V2)
    datatable(data, escape = FALSE)
  })
}

shinyApp(ui, server)
#> 
#> Listening on http://127.0.0.1:5145

相关问题