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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:27:05