从nycflights13数据集中查找每月飞机/飞机的使用情况

时间:2015-05-07 12:34:21

标签: r dplyr

我想找到所有飞机的月度使用量(基于tailnum) 假设这是需要在x次旅行后进行的某种维护活动所必需的。

截至目前,我正如下面所做的那样;

library(nycflights13)
    N14228  <- filter(flights,tailnum=="N14228")
    by_month <- group_by(N14228 ,month)
    usage <- summarise(by_month,freq = n())
    freq_by_months<- arrange(usage, desc(freq))

必须为所有飞机做到这一点,因为上面的方法不会有效,因为有4044个不同的尾巴

我浏览了dplyr插图,发现了一个非常接近这个例子,但它的目的是找到整体延迟,如下所示

    flights %>%
  group_by(year, month, day) %>%
  select(arr_delay, dep_delay) %>%
  summarise(
    arr = mean(arr_delay, na.rm = TRUE),
    dep = mean(dep_delay, na.rm = TRUE)
  ) %>%
  filter(arr > 30 | dep > 30)

除此之外,我尝试使用聚合并应用但无法获得所需的结果。

1 个答案:

答案 0 :(得分:2)

查看data.table包。

library(data.table)
flt <- data.table(flights)
flt[, .N, by = c("tailnum", "month")]
       tailnum month  N
    1:  N14228     1 15
    2:  N24211     1 14
    3:  N619AA     1  1
    4:  N804JB     1 29
    5:  N668DN     1  4
   ---                 
37984:  N225WN     9  1
37985:  N528AS     9  1
37986:  N3KRAA     9  1
37987:  N841MH     9  1
37988:  N924FJ     9  1

此处,.N表示&#34;计算&#34;。

的出现次数

不确定这是否正是您正在寻找的,但无论如何,对于这些类型的计数,由于执行速度和语法简洁性而难以击败data.table