Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用dateInput值作为数据框中的范围子集_Date_Shiny_Reactive - Fatal编程技术网

使用dateInput值作为数据框中的范围子集

使用dateInput值作为数据框中的范围子集,date,shiny,reactive,Date,Shiny,Reactive,你好,我有一个简单的闪亮的应用程序下面。这是df: location = c("100 ail","16th and Whitmore","40AB01 - ANTWERPEN","100 ail","16th and Whitmore","40AB01 - ANTWERPEN") date = c("2015-09-01 00:00:00","2016-03-06 19:00:00","2016-11-22 15:00:00","2018-02-01 09:30:00", "2018-02-

你好,我有一个简单的闪亮的应用程序下面。这是
df

location = c("100 ail","16th and Whitmore","40AB01 - ANTWERPEN","100 ail","16th and Whitmore","40AB01 - ANTWERPEN") 
date = c("2015-09-01 00:00:00","2016-03-06 19:00:00","2016-11-22 15:00:00","2018-02-01 09:30:00", "2018-02-01 03:00:00", "2017-03-07 10:00:00") 
pm25=c("FALSE","FALSE","FALSE","FALSE","FALSE","FALSE")
pm10=c("TRUE","FALSE","FALSE","TRUE","FALSE","FALSE")
no2=c("TRUE","FALSE","FALSE")
latitude=c(47.932907,41.322470,36.809700,47.932907,41.322470,36.809700)
longitude=c(106.92139000,-95.93799000
            ,-107.65170000,106.92139000,-95.93799000
            ,-107.65170000)

df = data.frame(location, date,latitude,longitude,pm25,pm10,no2)
应用程序:

ui = fluidPage(

  uiOutput("dt"),
  uiOutput("dt2"),
  submitButton(text = "Submit", icon = NULL, width = NULL),
  shiny::dataTableOutput("merged") 
)

#server.r

#df$location <- gsub( " " , "+" , df$location)
server = function(input, output, session) {







  output$dt<-renderUI({

    dateInput('date',
              label = 'First Available Date',
              value = df$date
    )           


  })
  output$dt2<-renderUI({

    dateInput('date2',
              label = 'Last available Date',
              value = df$date
    )            


  })
  output$merged <- shiny::renderDataTable({
    df %>%
      filter(date >= input$dt & date <= input$dt2)
  })
}

shinyApp(ui = ui, server = server)
ui=fluidPage(
输入输出(“dt”),
uiOutput(“dt2”),
submitButton(text=“Submit”,图标=NULL,宽度=NULL),
闪亮::dataTableOutput(“合并”)
)
#服务器.r

#df$location首先,您需要将
date
列转换为
date
格式。(为此,我使用了
lubridate

library(lubridate)

df = data.frame(location, date = as_datetime(date),latitude,longitude,pm25,pm10,no2)
在这种情况下不需要使用
renderUI
,因为您的数据不是动态的。(它也是这样工作的,只是不理想)。我只需要使用
dateInput

dateInput('date',
            label = 'First Available Date',
            value = min(df$date)
)   ,
dateInput('date2',
          label = 'Last available Date',
          value = max(df$date)
)
另外,对于
dateInput
设置
value=df$date
会导致一个警告,因为
value
参数只接受一个值,但是
df$date
是长度为6的
向量。因此,我将其改为
min(df$date)
max(df$date)

render
函数中,您需要指定
dateInput
s的
id
s,因此使用
input$date
input$date2
而不是
dt
dt2

注意:使用dplyr
过滤器时
:不需要运算符
&
,只需用逗号分隔过滤条件即可

df %>%
      filter(as_date(date) >= input$date, as_date(date) <= input$date2)

首先,您需要将
date
列转换为
date
格式。(为此,我使用了
lubridate

library(lubridate)

df = data.frame(location, date = as_datetime(date),latitude,longitude,pm25,pm10,no2)
在这种情况下不需要使用
renderUI
,因为您的数据不是动态的。(它也是这样工作的,只是不理想)。我只需要使用
dateInput

dateInput('date',
            label = 'First Available Date',
            value = min(df$date)
)   ,
dateInput('date2',
          label = 'Last available Date',
          value = max(df$date)
)
另外,对于
dateInput
设置
value=df$date
会导致一个警告,因为
value
参数只接受一个值,但是
df$date
是长度为6的
向量。因此,我将其改为
min(df$date)
max(df$date)

render
函数中,您需要指定
dateInput
s的
id
s,因此使用
input$date
input$date2
而不是
dt
dt2

注意:使用dplyr
过滤器时
:不需要运算符
&
,只需用逗号分隔过滤条件即可

df %>%
      filter(as_date(date) >= input$date, as_date(date) <= input$date2)

它可能与日期问题有关。我可以在日期和时间之间放置\而不是“”但这会改变日期格式,dateInput无法读取。可能是因为dateInput将df中的值作为输入,并且可以使用这些值来更新自身。我通常尝试使用自己创建的选项对数据框进行子集。它就像一个圆。或者dateInput不能用于t他的任务类型。它可能与日期问题有关。我可以在日期和时间之间放置\而不是“”但这会改变日期格式,dateInput无法读取。可能是因为dateInput将df中的值作为输入,并且可以使用这些值来更新自身。我通常尝试使用自己创建的选项对数据框进行子集。它就像一个圆。或者dateInput不能用于t这类任务。您只需在此处使用一个
dateRangeInput
,即可使用
input$date[1]
input$date[2]
访问这两个值。实际上,我的真实数据是动态的(不是这一个)因此,我想我应该保持输入$dt,输入$dt2?即使是这样,您也可以将这些值称为
input$date
input$date2
。这些值不会传递到
uiOutput
。您可以在这里使用一个
dateRangeInput
,并使用
input$date[1]
input$date>访问这两个值[2] 
实际上我的真实数据是动态的(不是这个),所以我想我应该保持输入$dt,输入$dt2?即使是这种情况,你也可以将这些值称为
input$date
input$date2
。这些值不会传递到
uiOutput