【问题标题】:how to filter by date and time?如何按日期和时间过滤?
【发布时间】:2022-07-16 02:00:36
【问题描述】:

大家好,我是使用 R 的新手,我需要有关数据库的帮助。目前,我正在按日期进行过滤,但除此之外,我需要每个日期在小时之间有一个过滤器,例如,显示的信息是 2019 年 10 月 31 日 18:00:00:00 和 06 之间:当天00:00:00,2019-11-1的信息也在上述时间间隔之间,到2020-01-12之后的几天也一样。我不知道这是否可行,或者我是否必须采取一些额外的步骤,希望您能帮助我解决这个疑问。

这是我正在使用的代码

data2<-M03100000246%>%
  mutate(Time=ymd_hms(Date_Measure),
         Date_Measure=floor_date(Time,unit = "hour"))%>%
  group_by(Date_Measure)

hourly246<-data2%>%
  summarise(Id="M03100000246",Tmin=min(T_atm_C,na.rm = T),
            Tmax=max(T_atm_C,na.rm = T),
            Tmedia=median(T_atm_C,na.rm = T),
            Smin=min(SR_W_m2,na.rm = T),
            Smax=max(SR_W_m2,na.rm = T),
            Smedia=median(SR_W_m2,na.rm = T),
            Hrmin=min(HR,na.rm = T),
            Hrmax=max(HR,na.rm = T),
            Hrmedia=median(HR,na.rm = T))%>%
  ungroup()%>%
  data.frame()


SD_HD246<-hourly246%>%
  filter(Date_Measure>="2019-10-31" & Date_Measure<"2020-01-12")%>%
  filter(Date_Measure>="18:00:00" & Date_Measure<="06:00:00")%>%
  as.data.frame()

但是当我运行最后一个时收到此错误

错误:filter() 输入 ..1 有问题。 i 输入..1Date_Measure &gt;= "18:00:00" &amp; Date_Measure &lt;= "06:00:00"。 x 字符串不是标准的明确格式 运行rlang::last_error() 看看哪里出错了。

【问题讨论】:

    标签: r


    【解决方案1】:

    您需要按时提取过滤时间。 第一次修复:

    filter(hour(Date_Measure) >= 18 & hour(Date_Measure) <= 6)
    

    下一个问题:数字不能是&gt;= 18 &lt;= 6。您需要。 (假设您想要夜间时间。如果您想要白天时间,请保留 &amp; 并切换您的 &lt;=&gt;=。)第二个修复:

    filter(hour(Date_Measure) >= 18 | hour(Date_Measure) <= 6)
    

    【讨论】:

    • 感谢您的@GregorThomas 帮助我解决了这个问题。您的解决方案对我帮助很大。正如你所说,我想从现场的气象站获取夜间温度。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2013-10-20
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2021-10-09
    • 2021-09-01
    • 2021-12-27
    相关资源
    最近更新 更多