Вычисление средней задержки по месту назначения на рейсах - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь решить задачу, которая гласит: Compute the average delay by destination, then join on the airports data frame so you can show the spatial distribution of delays. Here’s an easy way to draw a map of the United States

Итак, мой первоначальный подход - вычислить среднюю задержку. Я новичок в R, и до сих пор я не читал о циклах в главах, поэтому я не думаю, что я должен использовать циклы. Я хочу сделать это без, если это возможно. На любом другом языке программирования я бы сделал что-то вроде:

for i= 1 to flights.length
   for j = i to flights.length
         if flight[i].destination == flight[j].destination 
            avarage += (flight[i].arr_delay + flight[j].arr_delay)/i;

Если это полезно, вот ссылка на то, что я пытаюсь решить: https://r4ds.had.co.nz/relational-data.html#exercises -30

Я застрял. Это то, что у меня есть в R на данный момент:

library(tidyverse)
library(maps)
library(nycflights13)

fl <- flights %>% 
   filter(!is.na(arr_delay)) %>% 
     group_by(arr_delay)

view(mutate(fl, "avgDelay" = mean(arr_delay)))

Новый добавленный столбец, который я называю "avgDelay", просто показывает те же значения, что и arr_delay, поэтому я определенно делаю это неправильно.

Любая помощь очень ценится

1 Ответ

1 голос
/ 04 марта 2020

В отсутствие воспроизводимых данных и отсутствия ясности того, как выглядят ваши данные и каковы ваши цели, вот дикий выстрел того, что вы могли бы означать. В заголовке вашего сообщения упоминается «средняя задержка по направлениям». Это говорит о том, что у вас есть как минимум две переменные, одну мы можем назвать delay, другую мы назовем destination. Вот кадр данных с некоторыми выборочными данными для иллюстрации:

ДАННЫЕ :

set.seed(122)
delay <- sample(0:200, 10)
destination <- sample(LETTERS[1:3], 10, replace = T)
df <- data.frame(delay, destination)
df
   delay destination
1     57           C
2    157           B
3     81           C
4    174           B
5    185           A
6      8           C
7    102           A
8    173           A
9    106           A
10    87           C

РЕШЕНИЕ :

Чтобы вычислить Средняя задержка по пункту назначения, которую вы можете использовать tapply и функцию mean:

tapply(df$delay, df$destination, mean)
     A      B      C 
141.50 165.50  58.25 

Это приближается к тому, что вы хотели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...