2015-06-05 11 views
8

Come posso incorporare un'immagine in una cella generata utilizzando il pacchetto DT in modo che venga visualizzata in un'app che utilizza lucida?Come incorporare un'immagine in una cella in una tabella utilizzando DT, R e Shiny

Il mio esempio è basato su questa domanda R shiny: How do I put local images in shiny tables

Il codice di esempio riportato di seguito non viene visualizzata l'immagine, ma piuttosto solo l'url.

# 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="test.png" height="52"></img>', 
      '<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Flag_of_the_People%27s_Republic_of_China.svg/200px-Flag_of_the_People%27s_Republic_of_China.svg.png" height="52"></img>' 
      ) 
) 

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

    DT::datatable(dat) 
    }) 
}) 

risposta

16

È possibile utilizzare la escape = FALSE nella chiamata DT, come da: https://rstudio.github.io/DT/#escaping-table-content

# 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="test.png" height="52"></img>', 
      '<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Flag_of_the_People%27s_Republic_of_China.svg/200px-Flag_of_the_People%27s_Republic_of_China.svg.png" height="52"></img>' 
      ) 
) 

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

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

Images working with DT

+0

A questo punto nel tempo, esso non funziona per me. Potrebbe essere a causa di qualche cambiamento nel pacchetto? –

+0

@FissehaBerhane Consiglia di aprire una nuova domanda con MWE (esempio di lavoro minimo) –