微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

润滑数据帧中月份和小时的过滤器

如何解决润滑数据帧中月份和小时的过滤器

我一直在尝试找出如何使用lubridate&tidyverse软件包在一月月份的子集中对数据集中的特定小时(下午2点)进行过滤。该数据集本身具有4年的气象数据,我试图找到4年1月的下午2点的平均每日AirTemp。

我的数据当前如下所示:

数据

structure(list(Timestamp = c("2010-01-01 01:00:00","2010-01-01 02:00:00","2010-01-01 03:00:00","2010-01-01 04:00:00","2010-01-01 05:00:00","2010-01-01 06:00:00"),Temp = c(44L,44L,43L,42L
),Humid = c(100L,96L,93L,89L,83L),Precip = c(0L,0L,0L)),class = "data.frame",row.names = c("1","2","3","4","5","6"))

            Timestamp    Temp    Humid      Precip 
1 2010-01-01 01:00:00      44      100           0 
2 2010-01-01 02:00:00      44       96           0 
3 2010-01-01 03:00:00      44       93           0 
4 2010-01-01 04:00:00      44       89           0 
5 2010-01-01 05:00:00      43       89           0 
6 2010-01-01 06:00:00      42       83           0 

我已经尝试编写过滤器很多次了,但是我认为我编写语法的方式似乎存在误解

例如

weather %>% 
mutate(gethour = hour(weather$Timestamp)) %>% 
filter(gethour == gethour("2:00 PM"))

每次我尝试编写一个简单的过滤器时都会出错,有人知道我在做什么错吗?

解决方法

要获取所有年份的1月月份的下午2点的数据,可以使用:

library(dplyr)
library(lubridate)

weather %>% filter(hour(Timestamp) == 14 & month(Timestamp) == 1)

类似地,在基数R中,我们可以使用subset

subset(weather,format(Timestamp,"%H") == "14" & format(Timestamp,"%m") == "01")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。