2017-05-18 4 views
0

サンプリングイベントの前に、数百の農場で毎週5週間の天気を収集しました。私はサンプリングイベントの前の3週間の平均Air_Tempを求めたいと思う。現在、私のデータは順不同です。私は、各農場(ファイルで示されている)ごとにグループ化し、すべてのデータを日付と時間で昇順に並べ替える必要があります。言い換えれば、私は各ファイルを順番にしたい。ここで(データフレームは、天気と呼ばれる)私のデータの例である:それは順序でありますようにグループごとに2つの基準に従ってdplyr - arrange()を実行します

   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 

に見えますが、あなたはあなたをスクロールするときの日付の順序があることがわかります。

だから、私はこれで日付と時刻によってデータを配置するためにRを伝えるためにdplyrを使用しようとしている:アレンジはGROUP_BY機能を無視しているよう

Weather1<-Weather%>% 
group_by(File)%>% 
arrange(Date, Hour) 

しかし、それはそうです。場合によっては、時間と日付が同じ2つのファームのデータがあります。各農場を整理する代わりに、dfを日付と時間の順に並べます。

group_byは何を誤解していますか?何か助けてくれてありがとう。

+0

あなたはGROUP_BYを削除し、ちょうど(ファイル、日付、時間)を配置 'やって試してみました' –

+1

は 'もはやarrange'ませんdplyrの 'group_by'を尊重します(私は0.5.0と思っています)。 '(ファイル、日付、時)を手配する 'はあなたのために働くでしょうか? –

+2

'.by_group = TRUE'を追加することができます。デフォルトはfalseです。 – mt1022

答えて

0

これにはgroup_byは必要ではありません。通常、あなたのデータにある種の集約を実行しようとしているときに使用されます。アレンジは最初にFileでソートされ、次に各ファイル内のDateによってソートされ、次に各Date内のHourによってソートされます。これは、あなたが探している構造を取得する必要があります。あなたはまた、次の操作を行うことができます私のコメントに加えて

Weather1 <- Weather%>% 
      arrange(File, Date, Hour) 
+0

ありがとうございます、これは問題を修正したようです:) – OKra

0

dplyr(プレリリース0.6.0)の「0.5.0.9001」バージョンを使用しています。新しいバージョンはすぐにリリースされる予定です。グループ化されたDFのための

arrangeはデフォルトで情報をグループ化は無視されます:

## S3 method for class 'grouped_df' 
arrange(.data, ..., .by_group = FALSE) 

だから、DFがグループ化されていることをarrangeを伝えるために.by_group = TRUEを手動で設定する必要があります:

Weather1 <- Weather %>% 
    group_by(File) %>% 
    arrange(Date, Hour, .by_group = TRUE) 
0

sorted <- Weather %>% 
      arrange(Date, Hour) %>% 
      group_by(File) 
関連する問題