R语言中 剔除 flights planes 中 engines 和 seats 缺失的观测值,然后将数据按照engines 和 seats 分组,计算各组飞机在 2013 年的 distance 和arrive delay 的总和,计算结果不能为 NA,将计算结果保存为新的数据flights sum
时间: 2024-03-14 19:48:32 浏览: 160
您可以使用`na.omit()`函数剔除`flights`和`planes`中`engines`和`seats`缺失的观测值,具体代码如下:
```R
flights <- na.omit(merge(flights, planes, by = "tailnum"))
```
然后,您可以使用`dplyr`包中的`group_by()`和`summarize()`函数按照`engines`和`seats`分组,计算各组飞机在2013年的`distance`和`arr_delay`的总和,具体代码如下:
```R
library(dplyr)
flights_sum <- flights %>%
group_by(engines, seats) %>%
summarize(distance_sum = sum(distance[year == 2013], na.rm = TRUE),
arr_delay_sum = sum(arr_delay[year == 2013], na.rm = TRUE))
```
这里使用`%>%`符号将多个操作连在一起,`group_by(engines, seats)`表示按照`engines`和`seats`分组,`summarize()`函数用于计算每组的总和。最终结果将保存在`flights_sum`数据框中,计算结果中不包含NA值。
相关问题
1.数据:nycflights13,如果没有请先安装包(nyctights13 (1) 将flights 和 planes 进行连接,其中,最终结果应当保存 flights 中的所有观测值并且保存 planes 中对应的观测值,并将结果命名为flights_planes (2) 选取flights_planes 中 tailnum 中含有字母”W”的观测值,并将选取出来 的数据框保存为新的 flights_planes (3)剔除flights_planes 中engines 和 seats 缺失的观测值,然后将数据按照 engines 和seats 分组,计算各组飞机在2013 年的distance 和 arrive_delay 的总和,计算结果不能为 NA,将计算结果保存为新的数据 flights_sum (4) 利用上一问所得的flights_sum,计算不同 engines 的总到达迟到时间和 总飞行距离,用r语言完成
首先需要下载并加载 `nycflights13` 包,并读取 `flights` 和 `planes` 数据集:
```r
library(nycflights13)
data(flights)
data(planes)
```
(1) 连接 `flights` 和 `planes`,筛选出 tailnum 中含有字母 ”W“ 的观测值,并将结果保存为 `flights_planes`。
```r
flights_planes <- merge(flights, planes, by = "tailnum", all.x = TRUE)
flights_planes_w <- flights_planes[grepl("W", flights_planes$tailnum), ]
```
(2) 剔除 `flights_planes_w` 中 engines 和 seats 缺失的观测值,然后将数据按照 engines 和 seats 分组,计算各组飞机在2013 年的 distance 和 arrive_delay 的总和,计算结果不能为 NA,将计算结果保存为新的数据 `flights_sum`。
```r
flights_clean <- flights_planes_w[complete.cases(flights_planes_w$engines, flights_planes_w$seats), ]
flights_sum <- aggregate(cbind(distance, arrive_delay) ~ engines + seats, flights_clean, sum, na.rm = TRUE)
```
(3) 利用上一问所得的 `flights_sum`,计算不同 engines 的总到达迟到时间和总飞行距离。
```r
flights_sum_engines <- aggregate(cbind(distance, arrive_delay) ~ engines, flights_sum, sum)
```
最终结果 `flights_sum_engines` 将展示各种飞机引擎数量的总到达迟到时间和总飞行距离。
1. 数据来源于 package::nycflights13 (1) 将 flights 和 planes 进行连接,其中,最终结果应当保存 flights 中的所有 观测值并且保存 planes 中对应的观测值,并将结果命名为 flights_planes (5’) (2) 选取 flights_planes 中 tailnum 中含有字母 W 的观测值,并将选取出来的 数据框保存为新的 flights_planes(5’) (3) 剔除 flights_planes 中 engines 和 seats 缺失的观测值,然后将数据按照 engines 和 seats 分组,计算各组飞机在 2013 年的 distance 和 arr_delay 的总和,计算结果不能为 NA,将计算结果保存为新的数据 flights_sum(10’) (4) 利用上一问所得的 flights_sum,计算不同 engines 的总到达迟到时间和总 飞行距离(5’)
(1) 连接flights和planes,保存结果为flights_planes:
```R
library(nycflights13)
flights_planes <- merge(flights, planes, by = "tailnum", all.x = TRUE)
```
(2) 选取flights_planes中tailnum中含有字母W的观测值,保存为新的flights_planes:
```R
flights_planes <- flights_planes[grep("W", flights_planes$tailnum), ]
```
(3) 剔除flights_planes中engines和seats缺失的观测值,按照engines和seats分组,计算各组飞机在2013年的distance和arr_delay的总和,并将结果保存为新的数据flights_sum:
```R
flights_sum <- na.omit(flights_planes[c("engines", "seats", "distance", "arr_delay")])
flights_sum <- aggregate(cbind(distance, arr_delay) ~ engines + seats, data = flights_sum, FUN = sum)
```
(4) 利用上一问所得的flights_sum,计算不同engines的总到达迟到时间和总飞行距离:
```R
aggregate(cbind(distance, arr_delay) ~ engines, data = flights_sum, FUN = sum)
```
阅读全文