R 如何在一个闪亮的应用程序中通过日期范围对已加载的文件进行子集设置

R 如何在一个闪亮的应用程序中通过日期范围对已加载的文件进行子集设置,r,shiny,R,Shiny,我有一个闪亮的应用程序,用户上传一个文件,并将日期范围传递给dateRangeInput。然后,根据日期范围选择,将发生第二个子集,并将上载数据集第4列的唯一值传递给pickerInput。但当我尝试这样做时,pickerInput会显示一条“Nothing selected”(未选择任何内容)消息 我的csv看起来像: A tibble: 375 x 4 EventDate month week day <date> <dbl> &

我有一个闪亮的应用程序,用户上传一个文件,并将日期范围传递给dateRangeInput。然后,根据日期范围选择,将发生第二个子集,并将上载数据集第4列的唯一值传递给pickerInput。但当我尝试这样做时,pickerInput会显示一条“Nothing selected”(未选择任何内容)消息

我的csv看起来像:

A tibble: 375 x 4
   EventDate       month  week day  
   <date>     <dbl> <dbl> <ord>
 1 2017-01-01     1     1 Sun  
 2 2017-01-02     1     1 Mon  
 3 2017-01-03     1     1 Tue  
 4 2017-01-04     1     1 Wed  
 5 2017-01-05     1     1 Thu  
 6 2017-01-06     1     1 Fri  
 7 2017-01-07     1     1 Sat  
 8 2017-01-08     1     2 Sun  
 9 2017-01-09     1     2 Mon  
10 2017-01-10     1     2 Tue 
应用程序 您的问题在于输出$id中df的子集

可以使用as.Date转换输入$dateRange,但不能从因子转换EventDate

如果你把这一行改成这一行,你就应该开始做生意了

df<-data.frame(subset(df, as.Date(EventDate)>=as.Date(input$dateRange[1], "%Y-%m-%d") & 
                          as.Date(EventDate)<=as.Date(input$dateRange[2], "%Y-%m-%d")))
这很容易找到,只需在renderUI调用中添加浏览器,并看到df有0行


另外,这不是你问的问题,但是我注意到你读了两次.csv文件。您可以将其移到renderUI之外,并将其指定给一个被动值。然后你可以观察它两次

谢谢,但为什么这在这里不起作用?
df<-data.frame(subset(df, as.Date(EventDate)>=as.Date(input$dateRange[1], "%Y-%m-%d") & 
                          as.Date(EventDate)<=as.Date(input$dateRange[2], "%Y-%m-%d")))