2017-05-19 11 views
1

この問題を詳細に調査したところ、解決策はまだ見つかりません。私は43行と2列の単純なデータフレームを持っています。私の最初の列には2つの日付が含まれます。最初の日付は19回、残りは24回印刷されます。 2番目の列は温度です。私は日付で最大と最小の温度を探したいのですが、私のコードはデータセット全体の最大値と最小値を印刷し続けます。dplyrのgroup_by日付列

データ:

Date <- c(rep(x = "2017-05-18", each= 19), rep(x = "2017-05-19", each= 24)) 


Temperature_F <- c(35, 35, 42, 49, 57, 63, 64, 67, 70, 71, 72, 71, 72, 70, 66, 61, 57, 54, 50, 49, 45, 44, 44, 42, 40, 39, 47, 53, 61, 67, 69, 
    72, 75, 76, 77, 76, 77, 75, 71, 66, 62, 58, 54) 

NWS_temps1 <- data.frame(Date, Temperature_F) 

は、ここで私はそれが私の日付別の最大と最小温度を与えるべきだと思うとき私に全体の温度列の最大と最小を与え続け、私のdplyrコードです。

NWS_temps1 <- tbl_df(NWS_temps1) 

NWS_temps1 %>% 
    group_by(Date) %>% 
    summarise(Tmax = max(Temperature_F), Tmin= min(Temperature_F)) 

私が手出力は次のようになります。

Tmax Tmin 
    77 35 

私は期待しています:それが必要として日がグループ化されていない理由

Date  Tmax Tmin 
2017-05-18 72 35 
2017-05-19 77 39 

私は理解していません。私はそれがここにある文字、日付オブジェクト、そしてPOSIXctのような因子にDateを変更しようとしましたが、私の結果は常に合計データフレームの最大値と最小値です。

ご迷惑をおかけして申し訳ありません。

ありがとうございました。

+1

使用 'group_by'、ない' group_by_'、からtapplyを使用してソリューションです。 – www

+0

group_byを試してみると、それは私のところではエラーでした。 group_byとgroup_by_の両方で同じ結果が生成されます。/ – user3720887

+1

あなたのコードをテストし、 'group_by_'を' group_by'に置き換えました。出来た。 – www

答えて

1

あなたは、標準の評価版group_by_()の代わりに、NSEバージョンgroup_by()を使用しているように見えます。アンダースコアなしでそれを試してみてください。

NWS_temps1 %>% 
    group_by(Date) %>% 
    summarise(Tmax = max(Temperature_F), Tmin= min(Temperature_F)) 

#> # A tibble: 2 x 3 
#>   Date Tmax Tmin 
#>  <chr> <dbl> <dbl> 
#> 1 2017-05-18 72 35 
#> 2 2017-05-19 77 39 
+0

これは興味深いことです。私は両方を試みました、そして、私は同じ結果を得続けます。私はあなたの仕事が驚いています。私は自分のRセッションを閉じて再び開くつもりです。なぜこれがうまくいかないのか分かりません。 – user3720887

1
NWS_temps1 %>% 
group_by(as.character(Date)) %>% 
summarise(Tmax = max(Temperature_F), Tmin= min(Temperature_F)) 
+1

as.characterは必要ありません – www

1

dplyrを使用して他の人が提供する答えは動作するはずです。しかし、何らかの理由でdplyrが機能していない場合。ここでは、標準的な評価のための基地R.

dt <- data.frame(Date = unique(NWS_temps1$Date), 
       Tmax = tapply(NWS_temps1$Temperature_F, NWS_temps1$Date, FUN = max), 
       Tmin = tapply(NWS_temps1$Temperature_F, NWS_temps1$Date, FUN = min)) 
+0

ありがとう、私はこれを参考にして今後の予定です! – user3720887

関連する問題