2017-09-08 6 views
-1

Rでは、このデータフレーム(フライト_48)があります。Group_by 2日間のデータフレーム

各グループに48時間(2日間)の期間が含まれるように、まずgroup_by行を追加したいと思います。最初のグループには2013-01-01〜01-03などのデータが含まれていると思います。次に、2日間の各グループのtotal_delay列の合計を計算します。

現在、私は

flights_48 %>% 
    group_by(year,month,day) %>% 
    summarise(tot = sum(total_delay, na.rm = T)) 

structure(list(year = c(2013L, 2013L, 2013L, 2013L, 2013L, 2013L 
), month = c(1L, 1L, 1L, 1L, 1L, 1L), day = c(1L, 1L, 1L, 1L, 
1L, 1L), dep_time = c(517L, 533L, 542L, 544L, 554L, 554L), sched_dep_time = c(515L, 
529L, 540L, 545L, 600L, 558L), dep_delay = c(2, 4, 2, -1, -6, 
-4), arr_time = c(830L, 850L, 923L, 1004L, 812L, 740L), sched_arr_time = c(819L, 
830L, 850L, 1022L, 837L, 728L), arr_delay = c(11, 20, 33, -18, 
-25, 12), carrier = c("UA", "UA", "AA", "B6", "DL", "UA"), flight = c(1545L, 
1714L, 1141L, 725L, 461L, 1696L), tailnum = c("N14228", "N24211", 
"N619AA", "N804JB", "N668DN", "N39463"), origin = c("EWR", "LGA", 
"JFK", "JFK", "LGA", "EWR"), dest = c("IAH", "IAH", "MIA", "BQN", 
"ATL", "ORD"), air_time = c(227, 227, 160, 183, 116, 150), distance = c(1400, 
1416, 1089, 1576, 762, 719), hour = c(5, 5, 5, 5, 6, 5), minute = c(15, 
29, 40, 45, 0, 58), time_hour = structure(c(1357016400, 1357016400, 
1357016400, 1357016400, 1357020000, 1357016400), class = c("POSIXct", 
"POSIXt"), tzone = "UTC"), total_delay = c(13, 24, 35, -19, -31, 
8)), .Names = c("year", "month", "day", "dep_time", "sched_dep_time", 
"dep_delay", "arr_time", "sched_arr_time", "arr_delay", "carrier", 
"flight", "tailnum", "origin", "dest", "air_time", "distance", 
"hour", "minute", "time_hour", "total_delay"), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")) 

enter image description here

+0

重要でないデータのスクリーンショットではなく、関連性のない情報を含むスクリーンショットではなく、最小限のデータ例を含めることが常に望ましいです。 – lebelinoz

+1

簡単なサンプルを作成するには、データセットでこれを試してください:dput(head(yourData))。次に、その構造の出力をコピーして質問に貼り付け、必要に応じて編集します。 – www

答えて

0

あなたはグループ一日の整数除算によって日数が月の「daygroup」とても1日目と2を与えることができます持っているグループと3日目4などとグループ化してください。私はいくつかの小さなものを作った。データ これは、1日を単独で持つことを意味しても、月の境界で壊れたままにしたいと仮定しています。これを望まない場合は、最初に年の列を作成することができます。

library(tidyverse) 
flights_48 <- tibble(year = 2013, month = rep(7:8, each = 155), day = rep(1:31, each = 5, times = 2), total_delay = rep(c(5,8,10,20), length.out = 310)) 

flights_48 %>% mutate(daygroup = (day-1)%/%2) %>% group_by(year, month,daygroup) %>% 

まとめたもの(TOT = SUM(total_delay、na.rm = T))%>%as.data.frame()

またtime_hour列に同じようなことを行うことができます(と仮定すると、その深夜に壊れたくない場合は

関連する問題