【问题标题】:Printing text in Shiny在 Shiny 中打印文本
【发布时间】:2014-09-12 11:33:29
【问题描述】:

我已经阅读了使用 HTML 在 Shiny 中打印单独行的各种方法,但并不满意。我的目标是对各种自变量进行分类,并将代码作为 SQL 语句提供,然后用户可以使用它在 SAS 中进行分类。我最终希望在闪亮的应用程序中看到打印的文本是执行以下代码的结果:

binbreaks <- c(17,41,65,89,113)
x_var <- "IAG01"

for (i in 1:length(binbreaks)) {
 if (i==1) {
   cat(paste("select ",x_var, ", case", "\nwhen ", x_var," <= ", binbreaks[1], "then 1"))
 }
 if (i>1 & i<=(length(binbreaks)-1)) {
   cat(paste("\nwhen ",binbreaks[i-1], " < ", x_var, " <= ", binbreaks[i], "then ", i))
 }
 if (i==length(binbreaks)) {
   cat(paste("\nelse ", i))
   cat(paste("\nend as ", x_var, "_bin"))
 }

我闪亮的应用程序中的结果文本应该是:

select  IAG01 , case 
when  IAG01  <=  17 then 1
when  17  <  IAG01  <=  41 then  2
when  41  <  IAG01  <=  65 then  3
when  65  <  IAG01  <=  89 then  4
else  5
end as  IAG01 _bin

服务器.R:

shinyServer(function(input, output) {
  output$SQL_pp <- renderPrint({
    binbreaks<-seq(min(input_data_NA[[input$x_var]]),max(input_data_NA[[input$x_var]]),length.out=input$bins)
    cat(
      for (i in 1:length(binbreaks)) {
        if (i==1) {
          cat(paste("select ",input$x_var, ", case", "\nwhen ", input$x_var," <= ", binbreaks[1], "then 1"))
        }
        if (i>1 & i<=(length(binbreaks)-1)) {
          cat(paste("\nwhen ",binbreaks[i-1], " < ", input$x_var, " <= ", binbreaks[i], "then ", i))
        }
        if (i==length(binbreaks)) {
          cat(paste("\nelse ", i))
          cat(paste("\nend as ", input$x_var, "_bin"))
        }
      }
    )
  })

ui.R:

shinyUI(fluidPage(
  navbarPage("EDA Tool",
    tabPanel("SQL code", textOutput("SQL_pp"))
  )
)

问题是我想像上面的输出一样打印。相反,我的输出看起来很混乱。它仍然会执行,但我希望它看起来像样(即不是这样:

select IAG01 , case when IAG01 <= 17 then 1 when 17 < IAG01 <= 41 then 2 when 41 < IAG01 <= 65 then 3 when 65 < IAG01 <= 89 then 4 else 5 end as IAG01 _bin

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    HTML 默认忽略换行符;您可以使用 pre 元素来保留换行符和间距。替换这个:

    textOutput("SQL_pp")
    

    有了这个:

    textOutput("SQL_pp", container = pre)
    

    【讨论】:

    • 这正是我想要的。太感谢了!将来,如果我想了解诸如“容器”之类的选项,我该怎么做呢?例如,当我搜索 textOutput 文档时,container=pre 没有在任何地方列出。
    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多