0

我一直在想这个问题是否有答案。

所以我在server.R中有这个代码

desc <- reactive({

  for (i in 1:input$txt1){
    print(paste("Cluster ke", i))
    clust <- ensemble()

    newdata <- clust[which(clust$Cluster==i), 1]
    print(paste(newdata))

    barm <- vector("numeric")
    x <- ncol(clust)-2

    for (j in 2:x){
      datdesc <- clust[which(clust$Cluster==i), j]
      m <- mean(datdesc)
      colnam <- colnames(clust[j])
      print(paste("Rata-rata produktivitas", colnam,":", m))

      for(k in j-1){
        barm[k] <- m
      }
    }
    print(paste(barm))
    barplot(barm)
  }
})

output$desc <- renderPrint({
    desc()
})

这在ui中

conditionalPanel(condition="input.choice==3", verbatimTextOutput("desc"))

到目前为止,我可以获得我想要的所有输出,描述性文本和条形图。但是,条形图出现在 R 控制台而不是浏览器上。

有没有办法让文本和条形图显示在同一页面上?

我可以使用可能可以做到这一点的renderPrintverbatimTextOutput的其他功能吗?

还是有其他方法?

我一直在考虑一些解决方案,比如将desc()划分为有两个输出,文本和条形图。但是,如果有一种方法可以一次性完成,我非常想学习这种方法。

4

1 回答 1

0

当然,有许多不同的输出类型是很常见的。有关更多示例,请参阅 Shiny 画廊。

根据您提供的代码和模板:

用户界面

bootstrapPage(

  selectInput(
    "choice", "txt1 - descriptive text?",
    c(my_text = "my_text",
      your_text = "your_text")),

  selectInput(inputId = "n_breaks",
              label = "Number of bins in histogram (approximate):",
              choices = c(10, 20, 35, 50),
              selected = 20),

  checkboxInput(inputId = "individual_obs",
                label = strong("Show individual observations"),
                value = FALSE),

  checkboxInput(inputId = "density",
                label = strong("Show density estimate"),
                value = FALSE),

  plotOutput(outputId = "main_plot", height = "300px"),

  conditionalPanel(condition="input.choice=='my_text'", verbatimTextOutput("desc"))


)

服务器.R

function(input, output) {
  desc <- reactive({
    "some text goes here, I guess!"

  })

  output$desc <- renderPrint({
    desc()
  })

  output$main_plot <- renderPlot({

    hist(faithful$eruptions,
         probability = TRUE,
         breaks = as.numeric(input$n_breaks),
         xlab = "Pandjie Soerja",
         main = "Pandjie Soerja")

    if (input$individual_obs) {
      rug(faithful$eruptions)
    }

    if (input$density) {
      dens <- density(faithful$eruptions,
                      adjust = input$bw_adjust)
      lines(dens, col = "blue")
    }

  })
}

在此处输入图像描述

于 2018-06-23T03:07:27.220 回答