2015-06-05 12 views
8

Jak mogę osadzić obraz w komórce, która jest generowana przy użyciu pakietu DT, tak aby była wyświetlana w aplikacji za pomocą błyszczącej?Jak osadzić obraz w komórce tabeli za pomocą DT, R i Shiny

Mój przykład jest oparty na to pytanie R shiny: How do I put local images in shiny tables

Przykładowy kod poniżej nie wyświetla obrazu, ale raczej tylko 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) 
    }) 
}) 

Odpowiedz

16

Można użyć escape = FALSE w wywołaniu DT, a za: 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

W tym momencie w czasie, to nie działa dla mnie. Czy to możliwe z powodu pewnych zmian w pakiecie? –

+0

@FissehaBerhane Polecam otworzyć nowe pytanie z MWE (minimalny przykład pracy) –

Powiązane problemy