You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R的dplyr包计算每位设计师的商品平均价格?

解决方案

你已经用group_by完成了分组,接下来只需要在summarise()里直接计算平均价格就行,完全不用新增列或者额外数据框,一步到位:

1. 计算每位设计师的平均价格

# 分组并计算平均价格,na.rm=TRUE处理可能存在的缺失值
designer_avg_price <- bags_2 %>%
  group_by(designer_name) %>%
  summarise(avg_price = mean(price, na.rm = TRUE))

注意:看你提供的样本数据里,第一条的designer_name是" Blue Calla"(名称前多了空格),这种情况会导致同一个设计师被错误分成两组,建议先清理名称格式:

# 先加载stringr包处理字符串
library(stringr)
# 清理设计师名称的前后空格
bags_2 <- bags_2 %>%
  mutate(designer_name = str_trim(designer_name))

2. 绘制平均价格图表

用ggplot2直接基于上面得到的designer_avg_price数据框绘图,比如做排序后的柱状图(避免杂乱):

library(ggplot2)

ggplot(designer_avg_price, aes(x = reorder(designer_name, -avg_price), y = avg_price)) +
  geom_col(fill = "#2c3e50") +
  labs(title = "每位设计师纸样平均价格",
       x = "设计师名称",
       y = "平均价格") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 旋转x轴标签防止重叠

如果设计师数量较多(152位),柱状图过于拥挤,也可以换成点图展示:

ggplot(designer_avg_price, aes(x = reorder(designer_name, avg_price), y = avg_price)) +
  geom_point(color = "#e74c3c", size = 2) +
  labs(title = "每位设计师纸样平均价格",
       x = "设计师名称",
       y = "平均价格") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

整个流程都是管道化操作,没有多余的繁琐步骤,直接从原数据得到平均价格并完成可视化。

内容的提问来源于stack exchange,提问作者DivergentStitches

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 02:45:43