[英]dplyr - arrange () according to two criteria per group
在采樣活動開始之前的五個星期里,我每小時收集數百個農場的天氣。 我想確定采樣事件之前三周的平均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)
但是,似乎rang忽略了group_by函數。 在某些情況下,我具有兩個具有相同小時和日期的服務器場的數據。 它沒有按順序排列每個服務器場,而是按日期和小時的順序排列了df。
我會誤會group_by會做什么嗎? 感謝您的任何幫助。
我使用的“0.5.0.9001”版本dplyr
(的0.6.0預發布)。 新版本將很快發布。
對於已分組的df,默認情況下, arrange
將忽略分組信息:
## S3 method for class 'grouped_df'
arrange(.data, ..., .by_group = FALSE)
因此,您必須手動設置.by_group = TRUE
才能告訴arrange
df已分組:
Weather1 <- Weather %>%
group_by(File) %>%
arrange(Date, Hour, .by_group = TRUE)
group_by對此不是必需的,通常用於當您希望對數據執行某種聚合時。 排列將首先按文件排序,然后按每個文件中的日期排序,然后按每個日期中的小時排序。 這應該為您提供所需的結構。
Weather1 <- Weather%>%
arrange(File, Date, Hour)
除了我的評論之外,您還可以執行以下操作:
sorted <- Weather %>%
arrange(Date, Hour) %>%
group_by(File)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.