我有一个简单的Shiny应用程序正在投掷Error:cannot coerce class "c("reactiveExpr", "reactive")" to a data.frame
。我正在尝试根据用户选择的positions
按positions$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)
答案 0 :(得分:0)
我认为问题在于,如果pos
语句未执行,那么您的被动不知道if
变量是什么,例如input$line == 'All'
。然后你要求它在上下文中返回变量unknown。