我在 Shiny 应用程序中有一个数据表。该数据表有一列包含多个字符串。我需要使用正则表达式将此列中的一个字符串模式格式化为粗体。以下表示需要将字符串“H2”加粗,但我需要正则表达式解决方案。
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)
一种选择是使用例如
gsub
将您想要加粗的文本包装在 HTML b
标签内,并在 escape=FALSE
中设置 datatable()
。
编辑:根据@DavidJorquera的建议,我通过添加搜索模式和标签作为变量来对代码进行了一些概括。
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