r - 如何过滤数据框中每小时的最大值?
问题描述
本质上,我想创建一个条形图,它是每年所有降雨量的总和。读数大约每小时记录一次,但有时每小时有多个读数。不幸的是,当在一小时内有多个读数时,PCP01(给定小时内的降雨量变量)显示该特定小时在特定分钟间隔内的降雨量总和。这会导致有多个降雨量,具体取决于时间有多晚。这弄乱了绘图,所以我真的只想要每小时最大的 PCP01 值。有时在同一小时内有两个 PCP01 值具有相同的值,在这种情况下,我希望删除其中一个。数据框约为 231000 行。我尝试创建一个算法来删除无效行,但我无法让它工作。
working.data[181121:181136, c(2,3,4,5,6,7,9,10)]
date.year date.month date.day date.hour date.minute PCP01 SLP SPD
181121 2015 5 21 17 54 0.02 NA 0
181122 2015 5 21 18 54 0.02 NA 3
181123 2015 5 21 19 14 0.03 NA 5
181124 2015 5 21 19 21 0.04 NA 6
181125 2015 5 21 19 35 0.05 NA 5
181126 2015 5 21 19 49 0.07 NA 3
181127 2015 5 21 19 54 0.09 NA 3
181128 2015 5 21 20 9 0.02 NA 3
181129 2015 5 21 20 25 0.04 NA 0
181130 2015 5 21 20 34 0.05 NA 0
181131 2015 5 21 20 44 0.06 NA 5
181132 2015 5 21 20 52 NA NA 3
181133 2015 5 21 20 54 0.09 NA 0
181134 2015 5 21 21 15 0.04 NA 0
181135 2015 5 21 21 30 0.05 NA 0
181136 2015 5 21 21 42 0.05 NA 3
这是第 181121-181136 行数据集的一小部分。在这种情况下,我只需要 181121、181127、181133 和 181136 行。如果有人需要数据框中的更多数据,我可以提供更多部分。
解决方案
这是一种方法dplyr
,采用每小时数据的最后一行。
working %>%
group_by(date.year, date.month, date.day, date.hour) %>%
slice(n()) %>%
ungroup()
## A tibble: 5 x 9
# row date.year date.month date.day date.hour date.minute PCP01 SLP SPD
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl> <dbl>
#1 181121 2015 5 21 17 54 0.02 NA 0
#2 181122 2015 5 21 18 54 0.02 NA 3
#3 181127 2015 5 21 19 54 0.09 NA 3
#4 181133 2015 5 21 20 54 0.09 NA 0
#5 181136 2015 5 21 21 42 0.05 NA 3
或者,您可以通过以下方式明确获得每小时的最大降雨量:
working %>%
group_by(date.year, date.month, date.day, date.hour) %>%
arrange(-PCP01) %>%
slice(1) %>%
ungroup()
推荐阅读
- java - 获取 JWT 令牌 - 获取 401 Unauthorized 但从 Postman 工作
- babeljs - 如何设置 babel 插件和预设 - react-app-rewired
- android - X Android SDK 文件未找到:C:\Users\\AppData\Local\Android\Sdk\build-tools\29.0.3\aapt
- android - OneSignal 数据标签在 Android 生产版本中没有工作
- sql - 返回一个地图
在 HQL 中使用 Group by 子句 - json - 如何在反应中将json转换为获取函数
- javascript - 如何在单独的 js 文件中使用 document.getElementById()?
- django - 何时在 DRF 中的 jwt 中调用 gettoken、刷新令牌和验证令牌?
- javascript - 签名捕获图像未保存在本机反应中的 saveEvent 调用
- java - 实体在我的游戏中未正确渲染