web-dev-qa-db-ja.com

テキスト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 = ...)
  })

すべてが正常に機能し、パスウェイエンリッチメントテーブルが生成され、対応するUI要素に出力されます。私の唯一の問題は、URLの最後の列(KEGGLINK)をアクティブなハイパーリンクに変換する方法です。コピー&ペーストする代わりに、クリックするだけで済むようにします。

スクリーンショットのサイズについて、事前にお詫び申し上げます。 KEGGLINKの最後の列にURLがありますが、アクティブではありません。

15
Komal Rathi

あなたは2つのことをする必要があります:

  1. 最後の列を変更して、KEGGLINKが次のような適切なHTMLリンクに変更されるようにします。<a href='url'>link text</a>

  2. DTを渡すescape = FALSE引数は、HTMLコードをエスケープしないようにします。

DT Webページのセクション2.9に、この例があります。 https://rstudio.github.io/DT/

#1を実行する簡単な方法は、次のようになります。

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