You need to enable JavaScript to run this app. R语言小时数据转日度数据时保留分类变量的实现方法咨询
优惠活动
大模型
产品
解决方案
定价
更多

R语言小时数据转日度数据时保留分类变量的实现方法咨询

R语言小时数据日度聚合保留分类变量实现方案

方案1:调整分组逻辑,分类变量加入分组键

因为单日24条数据的分类变量取值完全一致,将分类变量加入聚合的分组规则即可,聚合结果会自动保留对应分类值:

n <- 24
# 构造日度分组ID
day_group <- gl(ceiling(nrow(day)/n), n)[1:nrow(day)]
# 聚合:分组键为日度ID+两个分类变量,数值列求均值
# 请将代码中的season、weekday替换为你数据集里分类变量的实际列名
daily <- aggregate(
  . ~ day_group + season + weekday,
  data = day,
  FUN = mean
)
# 如不需要生成的日度分组ID可删除
daily$day_group <- NULL

方案2:单独提取分类变量后合并

如果不想改动原有聚合逻辑,可以单独提取每日的分类变量值再合并到结果中:

n <- 24
# 排除分类变量,仅对数值列执行你原有聚合逻辑
# 请将代码中的season、weekday替换为你数据集里分类变量的实际列名
num_cols <- setdiff(colnames(day), c("season", "weekday"))
daily <- aggregate(
  day[, num_cols],
  by = list(gl(ceiling(nrow(day[, num_cols])/n), n)[1:nrow(day[, num_cols])]),
  FUN = mean
)
# 每24行取1条分类变量值,对应每日的分类属性
cat_vars <- day[seq(1, nrow(day), by = n), c("season", "weekday")]
# 合并分类变量与聚合后的数值结果
daily <- cbind(cat_vars, daily)
# 如不需要默认生成的Group.1分组列可删除
daily$Group.1 <- NULL

提示:两种方案都需要提前确认数据集按时间正序排列,保证日度分组与分类变量取值对应正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 00:36:02