带有 HTML 标签的 R 闪亮数据表

RJ_*_*982 2 datatable r shiny

我正在尝试在闪亮的数据表中使用 html 标签。我有一个文件,其中通过一些标准文本创建 URL,然后与另一列粘贴在一起以创建完整的 URL。我这里只包含数据和服务器部分。

我还内置了一个过滤器选项,能够过滤其中两列,然后在最后输出数据文件。我有一个简单的可重复示例,说明我想要完成的任务,但我相信我需要添加 escape=FALSE 选项;但我不确定它应该去哪里。所以目前我正在获取格式化的 html,我想要实时 html 并显示 A 列的文本

这是我的数据的简化版本以及我如何尝试设置它。谢谢!

A <- c("Alpha", "Beta", "Gamma", "Delta")
B <- c("one","two","three","four")
C <- c("five","six","seven","eight")
Test_File <- as.data.frame(cbind(A,B,C))

 output$table <- DT::renderDataTable(DT::datatable({
    data <- Test_File %>%
    dplyr::select(A,B) %>%
    dplyr::mutate(URL = paste0("https://www.testsite.com/abcdefg/", 
                         A)) %>%
    dplyr::mutate(URL = paste0("<a href='", URL, "'>",A,"</a>"))
    if(input$a != "All"){
    data <- data[data$A == input$a,]
    }
    if(input$b != "All"){
    data <- data[data$B == input$b,]
    }
   data
}))
Run Code Online (Sandbox Code Playgroud)

ism*_*gal 5

这是一个工作示例:

library(DT)
library(dplyr)

A <- c("Alpha", "Beta", "Gamma", "Delta")
B <- c("one","two","three","four")
C <- c("five","six","seven","eight")
Test_File <- as.data.frame(cbind(A,B,C))

ui <- basicPage(
  DT::dataTableOutput("table")
)

server <- function(input, output) {
  output$table <- DT::renderDataTable({
    data <- Test_File %>%
      dplyr::select(A,B) %>%
      dplyr::mutate(URL = paste0("https://www.testsite.com/abcdefg/", A)) %>%
      dplyr::mutate(URL = paste0("<a href='", URL, "'>",A,"</a>"))
  }, escape = FALSE)
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

您需要escape = FALSE作为参数传递给renderDataTable. 此外,您需要放弃datatable()调用,因为renderDataTable当您将数据表对象传递给它时会忽略其他参数。