我在控制台中输出data.tree包如下:
print(acme, "cost", "p")
#Out of Data.tree print JPEG
我想在闪亮的UI中呈现相同的输出结构。
我试过粘贴(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:DR;用服务器中的renderText()
替换renderPrint()
,用ui中的htmlOutput()
替换verbatimTextOutput()
。
问题在于renderText()
的工作原理。它将所有文本输入与cat()
连接起来,当使用对象data.tree对象时,这将失败。您应该使用renderPrint()
来捕获print语句的输出。不需要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)