我想得到前10个目的地,以及有多少航班飞往这些目的地。我正在使用摘要,我的问题是摘要会丢弃摘要(…)
中未提及的所有列。我需要保留列源
以备后用。
library(tidyverse)
library(nycflights13)
flights %>%
group_by(dest) %>%
summarise(n = n()) %>%
arrange(desc(n)) %>% head(10)
这是上面代码的结果
# A tibble: 10 x 2
dest allFlights
<chr> <int>
1 ORD 17283
2 ATL 17215
3 LAX 16174
4 BOS 15508
5 MCO 14082
6 CLT 14064
7 SFO 13331
8 FLL 12055
9 MIA 11728
10 DCA 9705
我认为这是正确的。但我缺少的是另一列打印原点
我在考虑做一些连接来获取原点
,但这没有意义,因为对这个结果集进行连接可能不会产生正确的航班。
我发现这篇文章:如何使用group_by和总结来总结所有的专栏?但这对我没有帮助,因为总结无法找到我提到的专栏,这些专栏不在其功能范围内。
当您按目的地对航班进行求和时,您是在对到达目的地城市的航班总数进行求和,目的地城市有许多不同的始发地城市。因此,此处的始发地列中只有一个值是没有意义的。
如果你愿意,你可以用group_by
替换group_by的
。这将为您提供前10对始发地-目的地城市,这与您的问题不同,但将保留始发地和目的地列以供进一步分析。
library(tidyverse)
library(nycflights13)
flights %>%
group_by(origin, dest) %>%
summarise(n = n()) %>%
arrange(desc(n)) %>% head(10)
# A tibble: 10 x 3
# Groups: origin [3]
origin dest n
<chr> <chr> <int>
1 JFK LAX 11262
2 LGA ATL 10263
3 LGA ORD 8857
4 JFK SFO 8204
5 LGA CLT 6168
6 EWR ORD 6100
7 JFK BOS 5898
8 LGA MIA 5781
9 JFK MCO 5464
10 EWR BOS 5327