以 Shiny 的方式将 print(data.tree) 的输出渲染到 UI

标签 r shiny

我在控制台中有如下 data.tree 包的输出:

print(acme, "cost", "p")

#Out of Data.tree print JPEG

enter image description here

我想在 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/

相关文章:

从向量中删除两个最大的唯一数字

r - 按数据类型拆分 R 中的字符串

R 按月的 Shiny 日期 slider 动画(当前按天)

r - 如何为 FluidRow titlePanel R Shiny 提供多行?

Shiny :通过条件面板的输入选择被否决

r - 按组在日期之间插入行

css - 在 R 中的标题和其他元素之间留出空间( Shiny 的应用程序)

r - 在 R 中使用 ARIMAX 进行预测

r - 在用户使用 Shinyauth 看到应用程序的任何部分之前,如何要求在 R Shiny 中进行用户身份验证?

r - 输入字符串 1 无效 UTF-8 Shiny 应用程序