在r语言的某一个数据集中,#按tailnum分组,去除arr_delay,dep_delay,tailnum的所有NA值。然后tailnum按字母顺序,由小至大。接着保留每一架飞机arr_delay或dep_delay最大值的相应数据表的行,有多个保留多个。结果数据为三列,tailnum, arr_delay, dep_delay
时间: 2024-02-21 10:59:25 浏览: 111
好的,针对你的问题,我可以给你提供以下代码解决方案:
```r
# 读取数据集
data <- read.csv("your_data_file.csv")
# 按tailnum分组,并去除NA值
data_clean <- na.omit(data[, c("tailnum", "arr_delay", "dep_delay")])
data_grouped <- aggregate(data_clean[, c("arr_delay", "dep_delay")], by=list(data_clean$tailnum), max)
# 对tailnum按字母顺序排序
data_sorted <- data_grouped[order(data_grouped$Group.1), ]
# 打印结果
result <- data.frame(tailnum=data_sorted$Group.1, arr_delay=data_sorted$arr_delay, dep_delay=data_sorted$dep_delay)
```
这段代码将按照你的要求对数据进行处理,最终结果将保存在一个名为`result`的数据框中。你可以根据实际情况对代码进行调整。
相关问题
帮我修改以下代码的错误:library(nycflights13) library(dplyr) flights <- na.omit(flights, cols = c("dep_time")) flights$dep_interval <- ifelse(flights$dep_time >= 601 & flights$dep_time <= 1200, "上午", ifelse(flights$dep_time > 1200 & flights$dep_time <= 1800, "下午", ifelse(flights$dep_time > 1800 & flights$dep_time <= 2400, "晚上", ifelse(flights$dep_time > 1 & flights$dep_time <= 600, "凌晨", NA)))) flights_new <- flights %>% na.omit() %>% group_by(year, month, day, dep_interval) %>% summarize("delay_mean" = mean(arr_delay, na.rm = TRUE), "delay_var" = var(arr_delay, na.rm = TRUE), "dest_count" = n_distinct(dest)) flights_select <- flights_new %>% filter(mean_arr_delay <= 30, num_airports >= 50) %>% arrange(desc(mean_arr_delay))
这段代码的问题在于`filter()`函数中引用了一个名为`mean_arr_delay`的未定义对象,正确的对象名应该是`delay_mean`。此外,在`filter()`函数中引用了一个名为`num_airports`的未定义对象。我们需要在`summarize()`函数中增加一个名为`num_airports`的参数,以便正确引用`dest_count`列。
请使用以下代码替换最后一行:
```
flights_select <- flights_new %>%
filter(delay_mean <= 30, dest_count >= 50) %>%
arrange(desc(delay_mean))
```
这里我们将`mean_arr_delay`改为`delay_mean`,并将`num_airports`改为`dest_count`,以与之前的`summarize()`函数中的列名匹配。
现在,代码应该可以成功运行并产生一个数据框,其中按平均延误降序排列,并且平均延误小于或等于30分钟,出发机场数量大于或等于50个。
用R语言探索 nycflights13 数据集 1. 从 flights 数据中找出到达时间延误 2 小时或者更多的所有航班,并将生成的新数据 保存为 flight_arr2hr。(5 分) 2. 将生成的 flight_arr2hr 数据集根据目的地(dest)进行分组,统计出抵达每个目的地 的航班数量,筛选出抵达航班数量前十名的目的地,将结果命名为 top10_dest。(5 分) 3. 从 weather 表中挑选出以下变量:year, month, day, hour, origin, humid, wind_speed, 并将其与 flight_arr2hr 表根据共同变量进行左连接, 生成的新数据保存为 flight_weather (5 分) 4. 基于 flight_weather 数据集,根据不同出发地(origin)在平行的三个图中画出风速 wind_speed(x 轴)和出发延误时间 dep_delay(y 轴)的散点图,以及平滑曲线。 (5 分) 5. flights 中每家航空公司在 2013 年有多少班次的航班被取消了?提示:依据 dep_time 来判断某班次航班是否被取消(5 分) 6. 找出 flights 中每一家航空公司的航班最常去的目的地机场,以及 flights 中每家航空 公司飞往最常去的目的地机场的航班数量 (10 分)
好的,以下是针对nycflights13数据集的R语言代码:
1. 找出到达时间延误 2 小时或者更多的航班,并将生成的新数据保存为flight_arr2hr:
```R
library(nycflights13)
flight_arr2hr <- filter(flights, arr_delay >= 120)
```
2. 将生成的flight_arr2hr数据集根据目的地(dest)进行分组,统计出抵达每个目的地的航班数量,筛选出抵达航班数量前十名的目的地,将结果命名为top10_dest:
```R
top10_dest <- flight_arr2hr %>%
group_by(dest) %>%
summarize(n = n()) %>%
arrange(desc(n)) %>%
slice(1:10)
```
3. 从weather表中挑选出以下变量:year, month, day, hour, origin, humid, wind_speed, 并将其与flight_arr2hr表根据共同变量进行左连接, 生成的新数据保存为flight_weather:
```R
flight_weather <- left_join(flight_arr2hr, select(weather, year, month, day, hour, origin, humid, wind_speed),
by = c("year", "month", "day", "hour", "origin"))
```
4. 基于flight_weather数据集,根据不同出发地(origin)在平行的三个图中画出风速wind_speed(x 轴)和出发延误时间dep_delay(y 轴)的散点图,以及平滑曲线:
```R
library(ggplot2)
ggplot(data = flight_weather, mapping = aes(x = wind_speed, y = dep_delay)) +
geom_point() +
geom_smooth(method = "lm") +
facet_wrap(~ origin, ncol = 3)
```
5. flights中每家航空公司在2013年有多少班次的航班被取消了?依据dep_time来判断某班次航班是否被取消:
```R
flights_cancelled <- flights %>%
filter(year == 2013, is.na(dep_time)) %>%
group_by(carrier) %>%
summarize(n = n())
```
6. 找出flights中每一家航空公司的航班最常去的目的地机场,以及flights中每家航空公司飞往最常去的目的地机场的航班数量:
```R
most_common_dest <- flights %>%
group_by(carrier, dest) %>%
summarize(n = n()) %>%
group_by(carrier) %>%
filter(n == max(n)) %>%
select(-n)
```
阅读全文