Я работаю через R4DS и в настоящее время выполняю 5.6.7 упражнений (https://r4ds.had.co.nz/transform.html#exercises-11).
Номер 1 здесь предлагает рассмотреть некоторые сценарии типичных характеристик задержки полетов. Первая подпункта: «Полет на 15 минут раньше в 50% случаев и на 15 минут позже в 50% случаев».
Я хочу найти полеты в наборе данных "nycflights13", которые имеют равное количество времени опоздания в 15 минут, а также время прибытия в 15 минут.
До этого момента я создавал новый фрейм данных, в котором есть только год, месяц, день, номер хвоста и задержка прибытия. Я также использовал dplyr для изменения и добавления логических столбцов «15_min_delay» и «15_min_early».
Затем я отфильтровал, используя plyr, для создания нового кадра данных, который содержит только полеты, которые были на 15 минут раньше или на 15 минут позже.
Отсюда я хочу сгруппировать по хвостам, я обнаружил, что у меня около 2,7 тысяч уникальных хвостов, но у меня 9266 наблюдений. Поэтому я знаю, что некоторые хвосты будут повторяться.
Как только я создал r odd_delays_new
, я немного растерялся, куда идти. Я попытался создать цикл for с ifelse внутри него, чтобы перебрать все 9 266 наблюдений и +1 к счетчику задержки или раннему счетчику, но это дало мне ошибку.
odd_delays <- flights %>%
select(year, month, day, tailnum, arr_delay) %>%
mutate("15_minute_delay" = arr_delay == 15, "15_minute_early" = arr_delay == -15)
length(odd_delays$"15_minute_delay"[odd_delays$"15_minute_delay" == TRUE])
length(odd_delays$"15_minute_early"[odd_delays$"15_minute_early" == TRUE])
odd_delays_new <- odd_delays %>%
filter(odd_delays$`15_minute_delay` == TRUE | odd_delays$`15_minute_early` == TRUE)
ifelse(odd_delays_new$`15_minute_delay` == TRUE, delay = delay + 1, early = early + 1)
Я ожидаю, что мои результаты будут представлять собой фрейм данных из 3 столбцов. В первом столбце будет указан номер хвоста, во втором столбце будет указано, сколько раз самолет имел задержку прибытия на 15 минут, а в третьем столбце будет указано количество раз, когда самолет прибыл на 15 минут раньше.