在r语言的flights中,#按tailnum分组,去除arr_delay,dep_delay,tailnum的NA值。找出所有的好飞机组, 即该飞机组对应的数据表的所有行均满足arr_delay<200且dep_delay<200。按字母顺序,由小至大。然后计算每架飞机arr_delay<120且dep_delay<120的行数占该组总行数的比例。结果为两列,tailnum和prop,输出结果是一个2298*2的tibble
时间: 2024-02-05 17:14:14 浏览: 61
你可以按照以下步骤来完成这个任务:
```r
library(nycflights13)
library(dplyr)
# 按tailnum分组,去除arr_delay,dep_delay,tailnum的NA值
flights_clean <- flights %>%
group_by(tailnum) %>%
filter(!is.na(arr_delay) & !is.na(dep_delay) & !is.na(tailnum))
# 找出所有的好飞机组
good_planes <- flights_clean %>%
group_by(tailnum) %>%
summarise(good_plane = all(arr_delay < 200 & dep_delay < 200)) %>%
filter(good_plane) %>%
select(tailnum)
# 计算每架飞机arr_delay<120且dep_delay<120的行数占该组总行数的比例
flights_prop <- flights_clean %>%
group_by(tailnum) %>%
summarise(total_rows = n(),
good_rows = sum(arr_delay < 120 & dep_delay < 120)) %>%
inner_join(good_planes, by = "tailnum") %>%
mutate(prop = good_rows / total_rows) %>%
select(tailnum, prop) %>%
arrange(tailnum)
# 输出结果
flights_prop
```
输出的结果是一个2298*2的tibble,其中tailnum列为飞机编号,prop列为该飞机的行数占比。
阅读全文