将一列文本URL转换为Shiny

时间:2015-06-17 19:47:35

标签: r hyperlink datatables shiny dt

我正在为通路浓缩程序创建用户界面。结果如下表所示。

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

一切正常,路径浓缩表生成&amp;打印在相应的UI元素中。我唯一的问题是如何将URL的最后一列(KEGGLINK)转换为活动超链接?这样人们就可以点击它们而不是复制&amp;粘贴。

预先为截图的大小道歉。我希望你能看到最后一栏KEGGLINK有网址,但它们没有活动。

2 个答案:

答案 0 :(得分:26)

你需要做两件事:

  1. 修改最后一列,以便将KEGGLINK更改为正确的HTML链接,如下所示:<a href='url'>link text</a>

  2. escape = FALSE参数传递给DT,以便它不会转义HTML代码。

  3. DT网页在2.9节中有一个例子: https://rstudio.github.io/DT/

    执行#1的简单方法是:

    mydata$url <- paste0("<a href='",mydata$url,"'>",mydata$url,"</a>")
    

答案 1 :(得分:4)

或者,也可以保持原始数据帧的完整性,并告诉dataTable如何呈现列。请参阅DT docs

中的4.4栏渲染一节