如何解决润滑数据帧中月份和小时的过滤器
我一直在尝试找出如何使用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 举报,一经查实,本站将立刻删除。