R语言如何按指定条件计算数据框列的平均值并绘图
筛选条件计算平均值及可视化实现方案
一、计算温哥华地区员工平均年龄
两种常用实现方式:
- 基础R语法
直接按城市字段筛选行后求年龄列均值,建议添加na.rm = TRUE参数避免空值导致计算报错:mean(df[df$City == "Vancouver",]$Age, na.rm = TRUE) - tidyverse语法(更适配后续数据分析、绘图流程)
先加载dplyr包,再按条件筛选分组计算:library(dplyr) # 单独提取温哥华平均年龄 vancouver_avg <- df %>% filter(City == "Vancouver") %>% pull(Age) %>% mean(na.rm = TRUE)
二、绘图实现
各城市平均年龄对比柱状图
可以直观呈现温哥华数据在全体中的水平,使用ggplot2实现的代码如下:
library(ggplot2) library(dplyr) # 先计算所有城市的员工平均年龄 city_age_stat <- df %>% group_by(City) %>% summarise( avg_age = mean(Age, na.rm = TRUE), .groups = "drop" ) # 绘制柱状图 ggplot(city_age_stat, aes(x = City, y = avg_age)) + geom_col(fill = "#2E86AB", alpha = 0.8) + # 柱子上标注平均年龄数值,保留1位小数 geom_text(aes(label = round(avg_age, 1)), vjust = -0.3, size = 3.5) + labs( title = "各城市员工平均年龄对比", x = "所属城市", y = "平均年龄" ) + theme_minimal()
温哥华地区员工年龄分布直方图
如果需要单独查看温哥华员工的年龄分布情况,可以用如下代码实现:
df %>% filter(City == "Vancouver") %>% ggplot(aes(x = Age)) + geom_histogram(binwidth = 2, fill = "#A23B72", alpha = 0.7) + labs( title = "温哥华地区员工年龄分布", x = "年龄", y = "人数" ) + theme_minimal()
内容的提问来源于stack exchange,提问作者Nerrad
相关产品推荐
相关产品推荐

