as.data.frame.default中的错误:无法将类“c(”reactiveExpr“,”reactive“)”强制转换为data.frame

时间:2017-08-06 23:03:00

标签: r shiny

我有一个简单的Shiny应用程序正在投掷Error:cannot coerce class "c("reactiveExpr", "reactive")" to a data.frame。我正在尝试根据用户选择的positionspositions$LineCode对名为line的data.frame进行子集化。以下是我的代码。

library(shiny)
library(shinydashboard)

lines <- c('All','RD','YL','GR','BL','OR','SV')

ui <- dashboardPage(
  dashboardHeader(title="Metro Positions"),
  dashboardSidebar(
    sidebarMenu(
      selectInput('line', 'Select Line:', lines)
    )
  ),
  dashboardBody(
    tableOutput('positionstable')
  )
)

positions <- read.csv('positions.csv')

server <- function(input, output, session) {
  pos <- reactive({
    if(input$line!='All'){
      pos <- positions[positions$LineCode==input$line,]
    }
    return(pos)
  })

  output$positionstable <- renderTable(pos())
}

shinyApp(ui, server)

1 个答案:

答案 0 :(得分:0)

我认为问题在于,如果pos语句未执行,那么您的被动不知道if变量是什么,例如input$line == 'All'。然后你要求它在上下文中返回变量unknown。