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

在R中绘制研究招募月度折线图时遇报错问题求助

问题解决:ggplot绘制累计招募折线图的报错修复

报错原因

你的代码存在两个核心问题:

  1. count(as.yearmon(recruitment$date)) 的写法会生成列名极不规范的列(列名就是表达式本身),且管道操作内无需用recruitment$date,直接写date即可。
  2. 到ggplot环节时,你仍在引用原数据框的recruitment$date,但此时管道传递的是分组计数后的数据集,里面根本没有原date列,这种错误引用导致ggplot无法正确解析yearmon对象,触发as.quoted方法报错。

修正后的代码

library(dplyr) 
library(zoo)
library(ggplot2) # 显式加载ggplot2包,避免依赖间接加载

recruitment %>%
    # 给转换后的月份列命名为month,管道内直接调用date列
    count(month = as.yearmon(date)) %>%
    mutate(cum_count = cumsum(n)) %>%
    # aes中使用处理后数据集的列
    ggplot(aes(x = month, y = cum_count)) +
    geom_line() +
    geom_point() +
    scale_x_yearmon(format = "%Y-%m") # 可选:指定x轴日期显示格式

关键修改点

  • 在count()中给月份列明确命名(month = as.yearmon(date)),让后续数据集拥有清晰可引用的列名。
  • ggplot的aes()里调用处理后数据集的month和cum_count列,而非原数据框的列。
  • 补充加载ggplot2包,避免因间接加载失败导致的潜在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:40:03