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

如何在R中基于同一数据集生成月度每日潜在客户柱状图

问题解决:按月生成每日潜在客户总数柱状图

原代码的核心问题

  1. 数据中未提取Month列,无法按月份拆分
  2. 嵌套后调用绘图函数时,传入的是完整数据集而非对应月份的子数据
  3. 未对每日潜在客户数进行汇总,直接使用原始单条记录绘图会导致堆叠而非总数
  4. 标题未关联具体月份,且x轴使用完整日期而非当月的日部分

完整修正方案

1. 数据预处理(提取月份+汇总每日总数)

首先对原始数据进行加工,提取月份、日期的日部分,并按月份+日汇总潜在客户总数:

library(tidyverse)
library(lubridate)

# 保留原模拟数据代码
set.seed(1)
sample_size <- 1200
dates <- sample(seq(1,31),sample_size,replace = TRUE)
Monthss <- sample(seq(1,12),sample_size,replace = TRUE)
hrs <- sample(seq(1,23),sample_size,replace = TRUE)
minutes <- sample(seq(1,59),sample_size,replace = TRUE)
date_time_vector <- paste0(dates,"-",Monthss,"-",2022," ",hrs,":",minutes) |> parse_date_time("dmy HM")
Conversion <- sample(c(TRUE,FALSE),sample_size, prob = c(0.25,0.75), replace = TRUE)
df <- data.frame(Date = date_time_vector, Conversion_Status = Conversion)
df <- df |> mutate(Leads = round(runif(sample_size, min = 0,max = 10),digits = 0))
df <- df[complete.cases(df), ]

# 新增:提取月份名称、日部分,汇总每日潜在客户总数
df_processed <- df |>
  mutate(
    Month = month(Date, label = TRUE, abbr = FALSE), # 提取完整月份名称(如"January")
    Day = day(Date)
  ) |>
  group_by(Month, Day) |>
  summarise(Daily_Total_Leads = sum(Leads), .groups = "drop") |>
  group_by(Month) |>
  nest() # 按月份嵌套子数据集

2. 修正绘图函数

调整函数接收子数据集和月份名称,生成对应月份的柱状图:

bar_function <- function(df_sub, month_name) {
  df_sub %>% 
    ggplot(aes(x = factor(Day), y = Daily_Total_Leads)) +
    geom_col(fill = "steelblue") +
    theme(
      plot.background = element_rect(fill = "white"),
      plot.title = element_text(hjust = 0.5)
    ) +
    labs(
      title = str_glue("Daily Leads for {month_name}"),
      x = "Day of Month",
      y = "Total Leads"
    )
}

3. 批量生成所有月份图表

使用map2配对子数据集和月份名称,生成每个月份的图表:

mycharts <- df_processed |>
  mutate(plot = map2(data, Month, bar_function))

# 查看指定月份的图表(例:查看1月)
mycharts$plot[[which(mycharts$Month == "January")]]

关键修正说明

  • 用month(Date, label = TRUE)提取直观的月份名称,替代数字编号
  • 按Month+Day汇总Leads,确保每个日对应唯一的总数
  • 使用nest()+map2实现子数据与月份的精准配对,避免传入完整数据集
  • x轴用factor(Day)避免非连续日期出现空隙(若需保留日期连续性可去掉factor())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:55:45