Ошибка в R блестящем подмножестве кадра данных на основе файла CSV - PullRequest
0 голосов
/ 09 октября 2018

Я создаю динамическое обновление в R глянцевый со следующим кодом, используя набор данных iris

 write.csv(iris, file = "iris.csv", row.names = F)
# to create a local version of iris dataset

# next create UI


  ui <- fluidPage(


   fileInput("file", "Browse",
        accept = c("text/csv",
                   "text/comma-separated-values,text/plain",
                   ".csv")
    ),
   selectInput(inputId = "Speciesname", label = "Name",choices = 
    NULL,selected = NULL),
   tableOutput("data")
   )


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



 df = reactive({
 req(input$file)
 return(read.csv(input$file$datapath))
 })

  observe({
  choices1 = unique(df()$Species)
  updateSelectInput(session,"Speciesname", choices =  choices1)
  })
  output$data <- renderTable({
  req(input$Speciesname)
  df[as.character(input$Speciesname), ]
  }, )
   }


 #Run app
 shinyApp(ui, server)

Я могу прочитать файл в. Подмножество, однако, показывает следующую ошибку и блестящее приложение

 Warning: Error in [: object of type 'closure' is not subsettable
 [No stack trace available]

Я не могу понять или разобраться в этой ошибке.Код запускается, когда я не использую локальную копию набора данных, а использую встроенный набор данных R iris.Я прошу кого-то, чтобы вести меня здесь

1 Ответ

0 голосов
/ 09 октября 2018

Это должно сделать работу

library(shiny)
write.csv(iris, file = "iris.csv", row.names = F)
# to create a local version of iris dataset

# next create UI

ui <- fluidPage(


  fileInput("file", "Browse",
            accept = c("text/csv",
                       "text/comma-separated-values,text/plain",
                       ".csv")),
  selectInput(inputId = "Speciesname", label = "Name",choices = 
                NULL,selected = NULL),
  tableOutput("data")
)


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

  df = reactive({
    req(input$file)
    return(read.csv(input$file$datapath))
  })

  observe({
    choices1 = unique(df()$Species)
    updateSelectInput(session,"Speciesname", choices =  choices1)
  })

  output$data <- renderTable({
    req(input$Speciesname)
    df()[df()$Species %in% input$Speciesname,]
  })
}


#Run app
shinyApp(ui, server)
...