Я пытаюсь загрузить файл CSV, а затем взять столбец (фактор) этого CSV-файла и создать пользовательский ввод, чтобы определить, какое из уникальных имен в этом поле будут выбраны для кадра данных.Фильтрация из selectInput in R shiny
Так что, если у меня есть следующий пример data.frame:
COURSE VALUE
1 A 7
2 C 2
3 C 2
4 B 9
...
Я хочу, чтобы фильтровать с помощью Select_Input, и пользователь может выбрать выбрать скажем А и С, а кадр данных будет фильтроваться для всего строк с а и С. Ниже приведен код для создания пользовательского интерфейса для select_Input
output$choose_course<-renderUI{
# If missing input, return to avoid error later in function
if(is.null(input$model.input))
return()
# Get the data set with the appropriate name
course.names <-c("All",as.vector(t(unique(select_(model.data0(),"COURSE")))))
selectInput("courses","Choose courses", choices=course.names, multiple=TRUE)
}
Обратите внимание, что model.data0() является реакционноспособные данные, введенные пользователем с помощью файла .csv. Эта первая часть кода работает нормально (но, может быть, формат запутывает следующий материал?) И отображает выбор пользователя. А рядом есть моя попытка фильтрации от selectInput ...
model.data<-reactive({
if(is.null(input$model.input))
return()
localdata<-model.data0()
if(input$courses!="All"){
localdata<-localdata[localdata$COURSE==unlist(input$courses),]
}
})
Однако это возвращает ошибку «аргумент 1 (тип„список“) не может быть обработан с помощью„кошки“». Я попробовал список выше, чтобы изменить его на вектор, но, похоже, не работал. Любые идеи, как я могу сделать этот фильтр моими данными?
Извинения, кажется, что я не правильно форматировать вывод для моего тестирования, и именно там я получаю сообщение об ошибке с. –