r语言程序代码基于给出爬取成功豆瓣电影排行榜top250的数据集movies.csv的进行数据清洗,数据分析,和数据可视化
时间: 2024-01-08 22:04:56 浏览: 63
r相关的代码,主要用于可视化的工作
好的,我可以为您提供关于R语言的数据清洗、分析和可视化的基本方法和代码示例。以下是一些示例代码,您可以根据您的具体需求进行修改和扩展。
首先,我们需要加载需要用到的R包:
```R
library(tidyverse) # 加载tidyverse包,包含了ggplot2、dplyr、tidyr等常用包
library(lubridate) # 加载lubridate包,方便处理日期和时间
```
接着,我们可以读取并查看数据集:
```R
movies <- read.csv("movies.csv") # 读取数据集
head(movies) # 查看前6行数据
```
接下来,我们可以进行一些数据清洗和预处理:
```R
# 将电影时长转换为分钟
movies$duration <- as.integer(str_extract(movies$duration, "\\d+"))
movies <- movies[!is.na(movies$duration),]
# 处理电影上映年份
movies$release_year <- year(as.Date(movies$release_date, format="%Y-%m-%d"))
# 处理电影类型
movies$genres <- strsplit(movies$genres, "\\|")
movies <- movies %>%
unnest(genres) %>%
mutate(genres = factor(genres))
# 处理电影评分
movies$rating <- as.numeric(movies$rating)
movies <- movies[!is.na(movies$rating),]
# 处理电影票房
movies$box_office <- as.numeric(str_extract(movies$box_office, "\\d+"))
movies <- movies[!is.na(movies$box_office),]
```
然后,我们可以进行一些数据分析和可视化:
```R
# 统计各个年份的电影数量
movie_count_by_year <- movies %>%
group_by(release_year) %>%
summarise(movie_count = n()) %>%
filter(release_year >= 1990)
# 统计各个类型电影的数量
movie_count_by_genre <- movies %>%
group_by(genres) %>%
summarise(movie_count = n()) %>%
arrange(desc(movie_count))
# 统计各个类型电影的平均评分
avg_rating_by_genre <- movies %>%
group_by(genres) %>%
summarise(avg_rating = mean(rating)) %>%
arrange(desc(avg_rating))
# 统计各个类型电影的票房总收入
total_box_office_by_genre <- movies %>%
group_by(genres) %>%
summarise(total_box_office = sum(box_office)) %>%
arrange(desc(total_box_office))
# 绘制各个年份电影数量的折线图
ggplot(movie_count_by_year, aes(x = release_year, y = movie_count)) +
geom_line() +
scale_x_continuous(breaks = seq(1990, 2020, by = 5)) +
labs(title = "电影数量随时间的变化", x = "年份", y = "电影数量")
# 绘制各个类型电影数量的条形图
ggplot(movie_count_by_genre, aes(x = genres, y = movie_count)) +
geom_bar(stat = "identity") +
coord_flip() +
labs(title = "不同类型电影的数量", x = "", y = "电影数量")
# 绘制各个类型电影平均评分的条形图
ggplot(avg_rating_by_genre, aes(x = genres, y = avg_rating)) +
geom_bar(stat = "identity") +
coord_flip() +
labs(title = "不同类型电影的平均评分", x = "", y = "评分")
# 绘制各个类型电影票房总收入的条形图
ggplot(total_box_office_by_genre, aes(x = genres, y = total_box_office)) +
geom_bar(stat = "identity") +
coord_flip() +
labs(title = "不同类型电影的票房总收入", x = "", y = "票房总收入")
```
以上是一个简单的R语言数据清洗、分析和可视化的示例,您可以根据需要进行修改和扩展。
阅读全文