使用renderUI时出现R Shiny错误:找不到对象

时间:2015-07-09 19:36:10

标签: r shiny

出于某种原因,Shiny认为我的renderUI不存在。代码非常简单。我们有一个客户数据框:
DF_custs <- data.frame(ID=c(1,2,3,3), val=c(10, 20, 100, 200))

您只需选择一个ID并获取值:

enter image description here

但我想实现一种方法,在下拉列表中将值发送回用户。所以我继续renderUI

问题在于 output$dupes<-renderUI({selectInput('dupes', 'These are dupes:', choices=get_cust()$val, selected=get_cust()$val[1,])})

此行允许您查看,例如,ID 3val的两个值。这两个值将填充下拉列表。后来我希望能够建立起来,但是现在这就是我要做的。非常简单。

我不断收到错误Error in output$dupes <- renderUI({ : object 'output' not found

一切看起来都不错。我有一个renderUI,它与uiOutput相关联。我没有看到任何语法问题,也没有遗漏参数。什么可能出错?

app.R

DF_custs <- data.frame(ID=c(1,2,3,3), val=c(10, 20, 100, 200))

server <- function(input, output, session) {

  get_cust <- reactive({
    cust <- DF_custs[which(DF_custs$ID == input$num), ]
    return(cust$val)})

  output$result <- renderText({ 
    ans <- get_cust()
    paste("Your value: ", ans)})
    }

  output$dupes<-renderUI({
    selectInput('dupes', 'These are dupes:', choices=get_cust()$val, selected=get_cust()$val[1,])})


ui <- fluidPage(
      numericInput(inputId="num", label="Pick an ID: ", value=1),
      uiOutput("dupes"),

      mainPanel(textOutput("result"))

)

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:1)

尝试使用此server function

server <- function(input, output, session) {

  get_cust <- reactive({
    #cust <- DF_custs[which(DF_custs$ID == input$num), ]
    #return(cust$val)
    DF_custs
    })

  output$result <- renderText({ 
    ans <- get_cust()[which(DF_custs$ID == input$num), "val"]
    paste("Your value: ", ans)})

  output$dupes<-renderUI({
    selectInput('dupes', 'These are dupes:', choices=get_cust()$val,     selected=get_cust()$val[1])
  })
}