如何在R中处理鞋类价格数据集:拆分价格范围与缺失值清理
R语言处理亚马逊鞋类数据集完整方案
1. 准备工作:安装并加载必要工具包
新手处理这类数据,推荐用tidyverse套件(整合数据处理、绘图工具),以及jsonlite读取JSON格式数据:
# 首次运行时安装包 install.packages(c("tidyverse", "jsonlite")) # 加载包 library(tidyverse) library(jsonlite)
2. 读取数据集
将JSON格式的数据集导入R环境(确保文件路径正确):
shoes_data <- fromJSON("amazon_uk_shoes_dataset.json")
3. 数据清洗与转换
3.1 移除价格为空的行
直接过滤掉Price列值为"NAN"或空值的记录:
clean_data <- shoes_data %>% filter(Price != "NAN" & !is.na(Price))
3.2 拆分价格范围为单独行
利用separate_rows函数,把包含价格范围(如"$40 - $50")的行拆分为两行,分别对应两个价格:
split_data <- clean_data %>% separate_rows(Price, sep = " - ")
处理后的数据结构与你期望的一致,可通过head(split_data)查看前几行验证。
4. 计算各品牌均价
先清洗价格格式(去掉$符号)并转为数值类型,再按品牌分组计算均价:
# 转换价格为数值型 price_numeric <- split_data %>% mutate(Price_numeric = as.numeric(str_remove(Price, "\\$"))) # 分组计算均价(保留两位小数) brand_avg_price <- price_numeric %>% group_by(Brand) %>% summarise(Average_Price = round(mean(Price_numeric, na.rm = TRUE), 2)) %>% ungroup()
5. 绘制品牌均价散点图
用ggplot2绘制散点图,直观展示各品牌价格差异:
ggplot(brand_avg_price, aes(x = Brand, y = Average_Price)) + geom_point(size = 3, color = "#2E86AB") + labs(title = "亚马逊英国站鞋类品牌均价", x = "品牌", y = "平均价格(美元)") + theme_minimal() + theme( axis.text.x = element_text(angle = 45, hjust = 1), plot.title = element_text(hjust = 0.5, size = 14, face = "bold") )
内容的提问来源于stack exchange,提问作者Shahzad Mukhtar
相关产品推荐
相关产品推荐

