web-dev-qa-db-ja.com

Shiny Datatableのクリック可能なリンク

ShinyのrenderDataTableを使用して、いくつかのHTMLリンクを含むテーブルを作成しました。リンクはクリック可能ではありませんが、文字通りレンダリングされます。

https://samizdat.shinyapps.io/zakazky/

何がいけないのか分かりませんか? Shinyをバージョン0.11にアップグレードする前に問題なく動作しました。ありがとう!

27
Petr Kočí

私も同じ問題を抱えていました。 escape = FALSE renderDataTableのオプションは、コメントで述べたように、それを解決しました。

以下は、リンクを持つテーブルを持つアプリの完全なコードです。

これを行う場合は、各リンクをテーブルの値に基づいて一意にする必要があります。このコードを関数に移動して、よりクリーンにしました。

#app.R#

library(shiny)

createLink <- function(val) {
  sprintf('<a href="https://www.google.com/#q=%s" target="_blank" class="btn btn-primary">Info</a>',val)
}

ui <- fluidPage(  
  titlePanel("Table with Links!"),
  sidebarLayout(
    sidebarPanel(
      h4("Click the link in the table to see
         a google search for the car.")
    ),
    mainPanel(
      dataTableOutput('table1')
    )
  )
)

server <- function(input, output) {

  output$table1 <- renderDataTable({

    my_table <- cbind(rownames(mtcars), mtcars)
    colnames(my_table)[1] <- 'car'
    my_table$link <- createLink(my_table$car)
    return(my_table)

  }, escape = FALSE)
}

shinyApp(ui, server)
36
williamsurles