我想找到所有飞机的月度使用量(基于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)
除此之外,我尝试使用聚合并应用但无法获得所需的结果。
答案 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
。