Как я могу сделать арифметику на атрибуты из двух разных таблиц в R? - PullRequest
0 голосов
/ 15 мая 2018

Я прошу прощения, если это простой и излишний вопрос, но я просто не могу найти ничего, что соответствует тому, что я ищу после нескольких часов поиска в Google.Я очень плохо знаком с R.

Моя цель - узнать, какой процент рейсов авиакомпании Delta Airline прибывает с опозданием, в зависимости от того, из какого аэропорта они вылетают.Вот мой код:

#install.packages("nycflights13")
#library(nycflights13)
flts <- nycflights13::flights

# filtering by Delta Airlines and late arrival dates
all_delta_flights <- filter(flts, carrier == "DL")
all_late_delta_flights <- filter(flts, carrier == "DL", arr_delay > 0)

# group by departing airport
by_origin <- all_delta_flights %>% group_by(origin)
by_origin_late <- all_late_delta_flights %>% group_by(origin) 

# get number of flights by departure airport
by_origin_late %>% summarise(n = n())
by_origin %>% summarise(n = n())

Последние две строки кода выводят следующие две таблицы.

# A tibble: 3 x 2
  <chr>  <int>
1 EWR     1725
2 JFK     6353
3 LGA     8335

# A tibble: 3 x 2
  origin     n
  <chr>  <int>
1 EWR     4342
2 JFK    20701
3 LGA    23067

Теперь я хочу создать новую таблицу, объединяющуюn столбец, такой как

# A tibble: 3 x 2
  origin     n
  <chr>  <double>
1 EWR     .397     #  == 1725 / 4342
2 JFK     ???      #  == 6353 / 20701
3 LGA     ???

Есть ли простой способ сделать это в R?

Спасибо!

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете сделать это в одном канале без объединения:

flts %>% 
    filter(carrier == "DL") %>% 
    group_by(origin) %>% 
    summarize(percent = sum(arr_delay > 0) / n())

Кажется, что столбец arr_delay содержит значения NA, вам может потребоваться добавить na.rm=T в sum:

flts %>% 
    filter(carrier == "DL") %>% 
    group_by(origin) %>% 
    summarize(percent = sum(arr_delay > 0, na.rm=T) / n())

# A tibble: 3 x 2
#  origin percent
#  <chr>    <dbl>
#1 EWR      0.397
#2 JFK      0.307
#3 LGA      0.361
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...