Преобразование столбца текстовых URL-адресов в активные гиперссылки в Shiny
Я создаю пользовательский интерфейс для программы обогащения путей. Результаты показаны в таблице, как показано ниже.
![enter image description here]()
Ниже приведен фрагмент, показывающий, что я использую DT:: renderDataTable и DT:: datatable для вывода таблицы на вкладке. spia_out() - это просто реактивная функция, которая запускает обогащение путей и создает фрейм данных.
spia_out <- reactive({
...get results in a dataframe...
})
output$spiaout <- DT::renderDataTable({
DT::datatable(spia_out(), extensions = ..., options = ...)
})
Все работает отлично, таблица обогащения путей генерируется и печатается в соответствующем элементе пользовательского интерфейса. Моя единственная проблема заключается в том, как преобразовать последний столбец (KEGGLINK) URL-адресов в активные гиперссылки? Чтобы люди могли просто нажимать на них вместо копирования и вставки.
Извините заранее за размер скриншота. Надеюсь, вы увидите последний столбец KEGGLINK имеет URL-адреса, но они неактивны.
Ответы
Ответ 1
Вам нужно сделать две вещи:
-
Измените последний столбец так, чтобы KEGGLINK был изменен на соответствующую HTML-ссылку, которая выглядит так: <a href='url'>link text</a>
.
-
Передайте DT аргументу escape = FALSE
, чтобы он не удалял код HTML.
На веб-странице DT есть пример этого в разделе 2.9:
https://rstudio.github.io/DT/
Простым способом сделать # 1 будет что-то вроде:
mydata$url <- paste0("<a href='",mydata$url,"'>",mydata$url,"</a>")
Ответ 2
В качестве альтернативы, также возможно сохранить исходный файл данных без изменений и сообщить dataTable, как визуализировать столбец. См. Раздел 4.4 "Оформление столбцов" в DT docs.