Я хотел бы иметь всплывающее окно и в содержимом распечатать таблицу (которая в моем случае названа). У меня есть таблица, которая выглядит как data.frame, но когда я запускаю команду typeof (out), я получаю «список»
Я пытался со следующим кодом
addPopover(session=session, id="infocpbayestext", title="",
content=HTML(out), placement = "left",
trigger = "hover", options = list(html = "true"))
И с
addPopover(session=session, id="infocpbayestext", title="",
content=HTML(build_infocpbayes_table(out)), placement = "left",
trigger = "hover", options = list(html = "true"))
, где build_infocpbayes_table - это функция, которая пытается построить таблицу html, например:
"<table><tr><th>index</th><th>Date</th><th>Count</th><th>postprob</th></tr><tr> <td>..</td> <td>..</td> <td>...</td> <td>...</td> </tr></table>"
Но хотя я строю правильную строку, как указано выше, она не появляется в popover.
Есть идеи, как мне это сделать?
Редактировать Чтобы лучше рассмотреть мой код
shinyServer(function(input, output, session) {
output$infocpbayestext <- renderUI ({
out<-structure(list(Date = c("2003-12", "2007-09", "2007-11"), Count =c(8721L,+ 31341L, 42948L), postprob = c(1, 1, 1)), row.names = c(174L,+ 219L,221L), class = "data.frame")
addPopover(session=session, id="infocpbayestext", title="", content=HTML(build_infocpbayes_table(out)), placement = "left", trigger = "hover", options = list(html = "true"))
return(HTML('<button type="button" class="btn btn-info">i</button>'))
})
build_infocpbayes_table <- function(data){
html.table <- paste('<table style = "border: 1px solid black; padding: 1%; width: 300px;"><tr><th>index</th><th>Date</th><th>Count</th><th>postprob</th></tr><tr>',tags$td(HTML(paste0(rownames(data),collapse=""))),
tags$td(HTML(paste0(data$Date,collapse=""))),
tags$td(HTML(paste0(data$Count,collapse=""))),
tags$td(HTML(paste0(data$postprob,collapse=""))),
'</tr></table>')
return(html.table)
}})
shinyUI(uiOutput("infocpbayestext"))