【发布时间】:2017-05-18 14:44:39
【问题描述】:
在采样活动之前的五周内,我每小时收集数百个农场的天气信息。我想确定采样事件前三周的平均 Air_Temp。目前,我的数据有问题。我想按每个农场分组(在文件中表示),然后按日期和小时升序排列所有数据。换句话说,我希望每个文件都井井有条。这是我的数据示例(名为 Weather 的数据框):
File Status Hour Air_Temp Dew_Temp Pressure Wind_Dir
1 results_1_farm-19 1 21 24.1 16.5 NA 190
2 results_1_farm-19 1 22 23.0 16.8 NA 0
3 results_1_farm-19 1 23 19.8 16.4 NA 0
4 results_1_farm-19 1 0 17.4 15.8 NA 0
5 results_1_farm-19 1 1 19.0 17.2 NA 170
Wind_Speed Sky Rain_1 Rain_6 Date
1 2.1 7 NA NA 2013-01-14
2 0.0 4 NA NA 2013-01-14
3 0.0 0 NA NA 2013-01-14
4 0.0 0 NA NA 2013-01-15
5 1.5 0 NA NA 2013-01-15
它看起来是有序的,但是当您滚动浏览时,您会发现日期是无序的。
所以,我正在尝试使用 dplyr 告诉 R 按日期和时间排列数据:
Weather1<-Weather%>%
group_by(File)%>%
arrange(Date, Hour)
但是,arrange 似乎忽略了 group_by 函数。在某些情况下,我有两个具有相同小时和日期的农场的数据。它没有按顺序排列每个农场,而是按日期和小时的顺序排列 df。
我是否误解了 group_by 会做什么?感谢您的任何帮助。
【问题讨论】:
-
您是否尝试过删除 group_by 并仅执行
arrange(File, Date, Hour) -
arrange不再尊重 dplyr 中的group_by(我认为是从 0.5.0 开始)。arrange(File, Date, Hour)会为你工作吗? -
可以加
.by_group = TRUE,默认为false。 -
您是否尝试过使用 data.table ?天气[chgroup(Weather$File), ] ?
-
arrange(File, Date, Hour) 最终工作。谢谢大家!
标签: r