提问者:小点点

在R中,如何为nycflights13组合dplyr转换


我试图在R Studio的nycflights13包中按起点/目的地找到五个最短的最小距离,称为min_dist。结果应该是一个包含5行3列(起点、起点和min_dist)的tibble。

我是一个初学者,这是我到目前为止所拥有的:

Q3 <- flights %>%
           
arrange(flights, distance)
group_by(origin) %>% 
summarise(min_dist = origin/dest)

我得到了错误:错误在group_by(起源):对象'起源'未找到。有什么提示吗?很多其他问题都类似于此,所以我想弄清楚如何做到这些。谢谢你


共2个答案

匿名用户

这可以通过选择感兴趣的列,获取不同的行并应用slice_minn=5来完成

library(dplyr)
flights %>%
  select(origin, dest, min_distance = distance)%>% 
  distinct %>% 
  slice_min(n = 5, order_by = min_distance, with_ties = FALSE)

-输出

# A tibble: 5 × 3
  origin dest  min_distance
  <chr>  <chr>        <dbl>
1 EWR    LGA             17
2 EWR    PHL             80
3 JFK    PHL             94
4 LGA    PHL             96
5 EWR    BDL            116

匿名用户

我们可以使用带有负号的top_n

library(nycflights13)
library(dplyr)

flights %>%
  select(origin, dest, distance) %>% 
  distinct() %>% 
  top_n(-5) %>% 
  arrange(distance)
  origin dest  distance
  <chr>  <chr>    <dbl>
1 EWR    LGA         17
2 EWR    PHL         80
3 JFK    PHL         94
4 LGA    PHL         96
5 EWR    BDL        116