我在控制台中有如下 data.tree 包的输出:
print(acme, "cost", "p")
#Out of Data.tree print JPEG
我想在 Shiny 的 UI 中呈现相同的输出结构。
我试过 paste(console.output(print(acme, "cost", "p")),collapse = ""),但输出结构不一样。
ui <- fluidPage(
sliderInput(inputId = "slider",
label = "My number",
min = 300,
max = 19000,
value = 5000),
htmlOutput("mytext")
)
server <- function(input, output) {
output$mytext <- renderText({
paste(capture.output(print(acme, "cost", "p")),collapse = "<br/>")
})
}
shinyApp(ui = ui, server = server)
请给我建议任何渲染函数,它们将在 Shiny UI 中完全像上面那样打印输出。
最佳答案
TL:博士;替换 renderText()
与 renderPrint()
在服务器和 htmlOutput()
与 verbatimTextOutput()
在用户界面。
问题在于如何renderText()
作品。它将所有文本输入与 cat()
连接起来对 data.tree 对象使用时会失败,这是一个列表。您应该使用 renderPrint()
捕获打印语句的输出。否 capture.output()
必需的。 renderPrint()
不适用于各种输出方式,最安全的使用方式是verbatimTextOutput()
.我的建议基于实验,而不是实际的文档研究。 htmlOutput 可能有效,但我不确定。
更新代码:
ui <- fluidPage(
sliderInput(inputId = "slider",
label = "My number",
min = 300,
max = 19000,
value = 5000),
verbatimTextOutput("mytext")
)
server <- function(input, output) {
output$mytext <- renderPrint({
print(acme, "cost", "p"))
})
}
shinyApp(ui = ui, server = server)
关于以 Shiny 的方式将 print(data.tree) 的输出渲染到 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47337313/