1.本题使用数据包 nycflights13 (24 分) (1)从flights 数据表中挑选出以下变量: (year, month,day, hour, origin, dep delay, distance,carrier),将生产的新表保存为 flight1。 (2)从weather 数据表中挑选出以下变量: (year, month, day, hour,origin, humid, wind speed),将生产的新表保存为 weather1。 (3)将 flight1 表和 weather1 表根据共同变量进行内连接,随机抽取 100000 行数据,将生产的结果保存为 flight weather。(提示: sample nO函数,不用重复抽取) (4) 从 flight weather 表中对三人出发机场按照平均出发延误时间排降序,并将结果保留在longest delay 表中。把结果展示出来。 (5) 根据出发地 (origin) 在同一个图中画出风速 wind speed (x轴)和出发延误时间 dep delay (y轴) 的平滑曲线图。 (6)根据不同出发地(origin) 在平行的3个图中画出风速 wind speed(x 轴)和出发延误时间 dep delay(y轴) 的散点图。 (7) 根据 flight weather 表,画出每个月航班数的直方分布图,x轴为月份,y轴是每个月份航班数所占的比例。 (8) 根据 flight weather 表,画出每个月航班距离的 boxplot 图,x 轴为月份,y轴为航行距离,根据的航行距离的中位数从低到高对 x 轴的月份进行重新排序。 r语言
时间: 2024-03-13 19:48:01 浏览: 207
很抱歉,由于我是一个语言模型,无法为您提供实时交互式的编程环境。但我可以给您提供一个基本的思路供参考:
1. 使用 `dplyr` 包中的 `select()` 函数选择需要的变量,并使用 `inner_join()` 函数根据共同变量进行内连接。
```
library(dplyr)
flight1 <- flights %>%
select(year, month, day, hour, origin, dep_delay, distance, carrier)
weather1 <- weather %>%
select(year, month, day, hour, origin, humid, wind_speed)
flight_weather <- inner_join(flight1, weather1, by = c("year", "month", "day", "hour", "origin"))
```
2. 使用 `group_by()` 和 `summarize()` 函数对每个出发机场进行平均出发延误时间的计算,然后使用 `arrange()` 函数将结果按照平均出发延误时间进行降序排序,最后使用 `head()` 函数选取前三个结果保存到 `longest_delay` 表中。
```
longest_delay <- flight_weather %>%
group_by(origin) %>%
summarize(avg_delay = mean(dep_delay, na.rm = TRUE)) %>%
arrange(desc(avg_delay)) %>%
head(3)
```
3. 使用 `ggplot2` 包中的 `geom_smooth()` 函数对每个出发地的风速和出发延误时间进行可视化。代码如下:
```
library(ggplot2)
ggplot(flight_weather, aes(x = wind_speed, y = dep_delay, color = origin)) +
geom_smooth(se = FALSE)
```
4. 使用 `facet_wrap()` 函数将不同出发地的散点图绘制在不同的子图中。代码如下:
```
ggplot(flight_weather, aes(x = wind_speed, y = dep_delay)) +
geom_point() +
facet_wrap(~origin)
```
5. 使用 `ggplot2` 包中的 `geom_bar()` 函数画出每个月航班数的直方分布图。代码如下:
```
ggplot(flight_weather, aes(x = month)) +
geom_bar(aes(y = ..prop.., fill = factor(month))) +
scale_y_continuous(labels = scales::percent_format()) +
labs(x = "Month", y = "Proportion of Flights", fill = "Month")
```
6. 使用 `ggplot2` 包中的 `geom_boxplot()` 函数画出每个月航班距离的 boxplot 图。代码如下:
```
flight_weather <- flight_weather %>%
mutate(month = factor(month, levels = unique(month)[order(tapply(distance, month, median))]))
ggplot(flight_weather, aes(x = month, y = distance)) +
geom_boxplot() +
labs(x = "Month", y = "Distance")
```
希望这些代码可以帮助您解决问题!
阅读全文