簡體   English   中英

具有HTML標簽的R閃亮數據表

[英]R shiny datatable with HTML Tags

我正在嘗試利用閃亮的數據表中的html標簽。 我有一個文件,其中通過一些標准文本創建了URL,然后將其與另一列粘貼在一起以創建完整的URL。 我只在這里包含數據和服務器部分。

我還內置了一個過濾器選項,可以對兩列進行過濾,然后在最后輸出數據文件。 我在這里有一個簡單的可重復示例,它說明了我要完成的工作,但我認為我需要添加escape = FALSE選項; 但我不確定應該去哪里。 所以目前我正在獲取格式化的html,我想要顯示文本A的實時html。

這是我的數據的簡化版本以及我如何設置它。 謝謝!

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

這是一個工作示例:

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)

您需要將renderDataTable escape = FALSE作為參數傳遞給renderDataTable 而且,您需要刪除datatable()調用,因為將數據renderDataTable對象傳遞給它時renderDataTable忽略其他參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM