使用DT,R和Shiny将图像嵌入表格单元格不起作用

时间:2017-07-20 14:48:15

标签: r shiny dt

这个问题被问到here并得到了答复。但是,现在,它对我不起作用。我不确定包裹是否有任何变化。有什么想法吗?

ui.r

require(shiny)
library(DT)

 shinyUI(
  DT::dataTableOutput('mytable')
 )

server.R

library(shiny)
library(DT)


dat <- data.frame(
    country = c('USA', 'China'),
    flag = c('<img src="http://flaglane.com/download/american-flag/american-
            flag-large.png" height="52"></img>',
            '<img src="https://upload.wikimedia.org/wikipedia/commons/2/2e/Flag_of_China.png" height="52"></img>'
 )
 )

  shinyServer(function(input, output){
   output$mytable <- DT::renderDataTable({

    DT::datatable(dat, escape = FALSE)
  })
})

编辑

我的感觉是,如果它在Rstudio查看器中不起作用,当我启动Shiny时它将无法工作。但是,我错了。当我运行应用程序时它工作正常,但在Rstudio Viewer中,它没有。

library(shiny)
library(DT)


  dat <- data.frame(
  country = c('USA', 'China'),

  flag = c('<img src="http://flaglane.com/download/american-flag/american-
    flag-large.png" height="52"></img>',
       '<img src="https://upload.wikimedia.org/wikipedia/commons/2/2e/Flag_of_China.png" height="52"></img>'
  )
   )
DT::datatable(dat, escape = FALSE)

enter image description here

1 个答案:

答案 0 :(得分:1)

你的例子不完整。这有用吗?

require(shiny)
library(DT)

ui <- shinyUI(
  DT::dataTableOutput('mytable')
)

dat <- data.frame(
  country = c('USA', 'China'),
  flag = c('<img src="http://flaglane.com/download/american-flag/american-flag-large.png" height="52"></img>',
           '<img src="https://upload.wikimedia.org/wikipedia/commons/2/2e/Flag_of_China.png" height="52"></img>'
  )
)

server <- shinyServer(function(input, output){
  output$mytable <- DT::renderDataTable({
    DT::datatable(dat, escape = FALSE)
  })
})

shinyApp(ui, server)

它适用于我。