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

使用dplyr分组与summarise_by_time汇总时报数据框尺寸不同错误如何解决

问题原因

你的代码存在两个语法错误:

  1. dplyr的管道操作符为%>%,你在group_by(area)后误写为+,该符号是ggplot2的图层拼接语法,不适用于dplyr的数据处理流程,因此触发「+仅适用于等尺寸数据框」的报错。
  2. 你已经通过管道将subppm传递给后续函数,无需在summarise_by_time中重复指定.data = subppm,否则会跳过前面的分组逻辑,直接对全量数据计算。
正确可运行代码

以下是基于你提供的测试数据的验证代码:

library(dplyr)
library(timetk)

# 测试数据生成
dates1=seq(from = as.Date('2019-01-01 00:00'), to = as.Date('2019-07-10 00:00'), by = 1)
dates2=seq(from = as.Date('2019-05-01 00:00'), to = as.Date('2019-10-10 00:00'), by = 1)
dates3=seq(from = as.Date('2019-03-01 00:00'), to = as.Date('2019-07-31 00:00'), by = 1) 

data1=data.frame(area='group1', dates=dates1)
data2=data.frame(area='group2', dates=dates2)
data3=data.frame(area='group3', dates=dates3)

data1$DPM=rbinom(n=nrow(data1), size=1, prob=0.05)
data2$DPM=rbinom(n=nrow(data2), size=1, prob=0.05)
data3$DPM=rbinom(n=nrow(data3), size=1, prob=0.05)

data=rbind(data1,data2,data3)

# 修正后的汇总代码
histData <- data %>%
  group_by(area) %>%
  summarise_by_time(
    .date_var = dates,
    .by = "month",
    monthly_dpm_sum = sum(DPM, na.rm = TRUE)
  )
适配你原始数据的代码

将测试数据字段替换为你原始subppm的字段即可:

histData <- subppm %>%
  group_by(area) %>%
  summarise_by_time(
    .date_var = DateTime,
    .by = "month",
    monthly_valid_minutes = sum(DPM, na.rm = TRUE)
  )

运行后会自动按区域分组、按月份汇总DPM总和,不同区域的采集时间范围不一致也不会影响运行,最终会保留每个区域存在数据的月份结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:24:04