利用R语言实现以下功能: 从天猫网站爬取的电视销售数据(tianmaoTV.xlsx)包含商品名称、商品描述、现价、原价、月销量、库存、店铺ID、店铺名称、评分、收藏数、累计评价数、毛重、品牌、电视类型和屏幕尺寸等变量。 (1)利用grep函数提取tianmao1的stock、stockclass两列,将其保存到stockc数据集中; (2)按照不同品牌计算不同店铺的销量,并保存在bshoptop3数据框中; (3)分别绘制图体现收藏数和销量、销量和评分之间的关系; (4)筛选得出价格波动(原价和现价的差)最大的前十名商品,并保存在salestop10数据集中; (5)生成原价和现价两列数据的箱线图,查看价格分布情况; (6)该表貌似整洁,但存在冗余,尝试将其修改为整洁数据集。
时间: 2023-12-10 08:05:25 浏览: 30
以下是利用R语言实现以上功能的代码:
```
# 导入所需包
library(readxllibrary(dplyr)
library(ggplot2)
library(tidyr)
# (1) 提取stock和stock列保存到stockc中
stockc <-ianmao1[, c("stock", "class")]
# (2)照不同品牌计算不同店铺的销量,并保存在bshoptop3数据框中
bshoptop3 <- tianmao1 %>%
group_by(品牌, 店铺ID, 店铺名称) %>%
summarise(总销量 = sum(月销量)) %>%
arrange(desc(总销量)) %>%
group_by(品牌) %>%
slice_max(总销量, n = 3)
# (3) 绘制收藏数和销量、销量和评分之间的关系图
ggplot(tianmao1, aes(x = 收藏数, y = 月销量)) +
geom_point() +
xlab("收藏数") +
ylab("销量") +
ggtitle("收藏数与销量关系图")
ggplot(tianmao1, aes(x = 评分, y = 月销量)) +
geom_point() +
xlab("评分") +
ylab("销量") +
ggtitle("评分与销量关系图")
# (4) 筛选价格波动最大的前十名商品,并保存在salestop10数据集中
salestop10 <- tianmao1 %>%
mutate(价格波动 = 原价 - 现价) %>%
arrange(desc(价格波动)) %>%
head(10)
# (5) 生成原价和现价两列数据的箱线图,查看价格分布情况
prices <- tianmao1 %>%
select(原价, 现价) %>%
pivot_longer(everything(), names_to = "价格类型", values_to = "价格")
ggplot(prices, aes(x = 价格类型, y = 价格)) +
geom_boxplot() +
xlab("价格类型") +
ylab("价格") +
ggtitle("原价和现价的箱线图")
# (6) 修改为整洁数据集
tianmao_clean <- tianmao1 %>%
select(-c(商品描述, 店铺ID, 店铺名称, 毛重, 电视类型, 屏幕尺寸)) %>%
pivot_longer(cols = -c(商品名称, 品牌), names_to = "变量", values_to = "值")
```
以上代码实现了你提出的功能。其中,第6步使用了`pivot_longer`函数将表格转换为整洁数据集,每一行代表一个观测值,每一列代表一个变量,这样可以更方便地进行数据分析和可视化。