我试图让用户上传 .csv 文件,然后获取该 .csv 文件的一列(因子)并创建用户输入,以确定将为数据框选择该字段中的哪个唯一名称。
因此,如果我有以下示例 data.frame:
COURSE VALUE
1 A 7
2 C 2
3 C 2
4 B 9
...
我想使用 Select_Input 进行过滤,用户可以选择选择 A 和 C,并且数据框将仅筛选包含 A 和 C 的行。下面是为 select_Input 生成 UI 的代码
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(类型‘list’)无法由‘cat’处理”。我尝试了上面的 unlist 将其更改为向量,但似乎不起作用。有什么想法可以让我过滤我的数据吗?