首页 > 解决方案 > 将反应输入用于 Shiny 的 R 代码计算

问题描述

我有一个闪亮的应用程序从 ui 读取输入,但我无法跟进代码中输入的数据。如下:

ui <- fluidPage(

...
        selectInput("ISvModels", "Choose:", 
              choices = c(1000,5000)),
)

server <- function(input, output) {

  vModels <- reactive({input$ISvModels})
  qtModels <- length(vModels)
    qtModels
  vtModels <- paste0("M",1:qtModels," n = ",vModels," scenarios")
    vtModels
}

我得到:

警告:as.vector 中的错误:无法将类型“闭包”强制转换为“字符”类型的向量

我尝试了从观察到渲染的各种方法,但没有任何效果。似乎我在这里遗漏了一些概念,希望您能提供帮助。谢谢!

标签: rshinyrstudioreactive

解决方案


您的服务器需要一个输出,以某种方式将您计算的内容显示给用户。我们可以使用 atextOutput来实现这一点。

下面是一个最小示例,显示了一个链接到文本框的下拉框。

library(shiny)

ui <- fluidPage(
    
    #Dropdown
    selectInput("ISvModels", "Choose:", choices = c(1000,5000)),
    
    #Textbox
    textOutput("mytext")
    
)

server <- function(input, output, session) {
    
    #Prepare Textbox Content
    output$mytext <- renderText({
        
        qtModels <- length(input$ISvModels)
        vtModels <- paste0("M", 1:qtModels, " n = ", input$ISvModels," scenarios")

        return(vtModels)
        
    }) 
    
}

shinyApp(ui, server)

推荐阅读